Algoritma Cuba || Ciri Auto Lengkap menggunakan Javascript

WBOY
Lepaskan: 2024-08-24 11:20:02
asal
155 orang telah melayarinya

Trie Algorithm || Auto Complete feature using Javascript

pengenalan

A Trie, juga dikenali sebagai pepohon awalan, ialah struktur data berasaskan pepohon khusus yang digunakan untuk mendapatkan maklumat yang cekap.

Ia amat berguna untuk kes penggunaan yang melibatkan pencarian dan padanan awalan dalam rentetan.

  1. Jika saya memberitahu anda tentang Algoritma Percubaan, anda mungkin berminat atau tidak dengan algoritma ini

  2. Tetapi jika saya beritahu anda, anda boleh menciptaautolengkap algoritmamenggunakan ini. anda akan lebih teruja untuk mempelajari ini.

Gunakan Kes Algoritma ini

1. Autolengkap:

a. Percubaan sering digunakan dalam enjin carian atau penyunting teks untuk melaksanakan ciri autolengkap.
b. Semasa anda mula menaip, aplikasi mencadangkan kemungkinan penyiapan berdasarkan awalan yang anda masukkan.

2. Penyemak Ejaan:

a. Percubaan boleh digunakan untuk melaksanakan penyemak ejaan. Jika perkataan tidak terdapat dalam trie, ia mungkin tersilap ejaan.
b. Percubaan juga boleh mencadangkan pembetulan dengan mencari perkataan yang serupa.

3. Penghalaan IP:

a. Percubaan digunakan dalam penghala untuk menyimpan jadual penghalaan.
b. Penghala menggunakan percubaan untuk memadankan awalan terpanjang, yang menentukan lompatan seterusnya untuk satu paket.

4. Menyimpan dan Mencari Rentetan dengan Cekap:

a. Jika anda mempunyai set data rentetan yang terdapat banyak awalan dikongsi, percubaan boleh menyimpan rentetan ini menggunakan lebih sedikit ruang berbanding menyimpannya secara individu.
b. Operasi carian juga cekap, dengan kerumitan masa berkadar dengan panjang rentetan yang anda cari.

class Node { constructor() { this.end = false; this.children = {} } } class Trie { constructor() { this.root = new Node (); } insert(word) { let head = this.root; for (let i = 0; i< word.length; i++) { if (!head.children[word[i]]) { head.children[word[i]] = new Node(); } head = head.children[word[i]]; } head.end = true; } search(word){ let current = this.root; for (let i = 0; i < word.length; i++) { if (!current.children[word[i]]) { return false; } current = current.children[word[i]] } return true; } autoComplete(word) { let current = this.root; for (let i = 0; i< word.length; i++) { if (!current.children[word[i]]) { return false; } current = current.children[word[i]]; } if (Object.keys(current.children).length === 1) { console.log('Please Type More...'); return; } console.log('children =---> ', current.children); console.log('Possible Auto Complete Values are --->'); for (let key in current.children) { console.log('---> ', word+key); } } } const test = new Trie(); test.insert('ant'); test.insert('any'); console.log(test.search('ant')); console.log(test.search('any')); console.log(test.search('anj')); test.autoComplete('an') /* true true false children =---> { t: Node { end: true, children: {} }, y: Node { end: true, children: {} } } Possible Auto Complete Values are ---> ---> ant ---> any */
Salin selepas log masuk

Sila hubungi saya jika anda mempunyai sebarang kebimbangan/pertanyaan.

Atas ialah kandungan terperinci Algoritma Cuba || Ciri Auto Lengkap menggunakan Javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!