Dijelaskan Algoritma Carian Linear & Binari

Dijelaskan Algoritma Carian Linear & Binari

Keupayaan untuk mencari beberapa data adalah aspek penting dalam sains komputer. Algoritma carian digunakan untuk mencari item tertentu dalam set data.





Algoritma mengembalikan hasil boolean (benar atau salah) ke pertanyaan carian. Mereka juga boleh diubahsuai untuk memberikan kedudukan relatif dari nilai yang dijumpai.





Untuk artikel ini, algoritma akan menumpukan perhatian untuk menentukan sama ada nilai ada.





Algoritma Carian Linear

Pencarian linear juga dikenali sebagai carian berurutan. Dalam jenis carian ini, setiap nilai dalam senarai dikunjungi satu persatu secara teratur sambil memeriksa apakah nilai yang diinginkan ada.

Algoritma memeriksa nilai demi nilai sehingga ia menemui nilai yang anda cari atau kehabisan nilai untuk dicari. Apabila kehabisan nilai untuk mencari, itu bermakna pertanyaan carian anda tidak ada dalam senarai.



Algoritma carian berurutan mengambil senarai nilai dan item yang diinginkan dalam senarai sebagai parameternya. Hasil pulangan dimulakan sebagai Salah dan akan berubah menjadi Betul apabila nilai yang dikehendaki dijumpai.

Lihat pelaksanaan Python di bawah sebagai contoh:





def linearSearch(mylist, item):
found = False
index = 0
while index if mylist[index] == item:
found = True
else:
index = index+1
return found

Analisis Algoritma

Senario kes terbaik berlaku apabila item yang diinginkan adalah yang pertama dalam senarai. Kes terburuk berlaku apabila item yang diinginkan adalah yang terakhir dalam senarai (item ke-9). Oleh itu, kerumitan masa untuk carian linear adalah O (n).

Senario kes purata dalam algoritma di atas adalah n / 2.





Berkaitan: Apa itu Notasi Big-O?

Penting untuk mengetahui bahawa algoritma yang digunakan mengandaikan bahawa senarai item rawak diberikan kepadanya. Artinya, item senarai tidak mengikut urutan tertentu.

cara mendapatkan google di roku

Katakan barang-barang itu berada dalam urutan tertentu, katakanlah dari yang paling kecil hingga yang terbesar. Adalah mungkin untuk mencapai beberapa kelebihan dalam pengiraan.

Ambil contoh mencari 19 dalam senarai yang diberikan: [2, 5, 6, 11, 15, 18, 23, 27, 34]. Setelah mencapai 23, akan menjadi jelas bahawa item yang dicari tidak ada dalam senarai. Oleh itu, tidak mustahak untuk terus mencari item senarai yang lain.

Algoritma Pencarian Binari

Anda telah melihat bagaimana senarai yang dipesan dapat mengurangkan pengiraan yang diperlukan. Algoritma carian binari lebih memanfaatkan kecekapan ini dengan memperkenalkan senarai teratur.

Algoritma bermula dengan mengambil nilai tengah dari senarai yang diperintahkan dan memeriksa apakah itu nilai yang diinginkan. Sekiranya tidak, nilainya diperiksa sama ada kurang atau lebih besar daripada nilai yang diinginkan.

Sekiranya kurang, maka tidak perlu menyemak bahagian bawah senarai. Jika tidak, jika lebih besar, maka ia beralih ke bahagian atas senarai.

Berkaitan: Apakah Pengulangan dan Bagaimana Anda Menggunakannya?

Terlepas dari sublist mana pun (kiri atau kanan) yang dipilih, nilai tengah akan ditentukan lagi. Nilai itu diperiksa semula jika itu adalah nilai yang diperlukan. Sekiranya tidak, diperiksa sama ada kurang atau lebih besar daripada nilai yang diminta.

xbox satu pengawal tidak akan berhubung

Proses ini diulang sehingga nilai dijumpai jika ada.

Pelaksanaan Python di bawah adalah untuk algoritma carian binari.

def binarySearch (mylist, item):

low = 0
high = len(mylist) - 1
found = False
while low <= high and not found: mid = (low + high) // 2
if mylist[mid] == item:found = True
elif item else:low = mid + 1
return found

Analisis Algoritma

Senario kes terbaik berlaku apabila item yang diinginkan didapati sebagai item tengah. Senario terburuk tidak begitu mudah. Ikuti analisis di bawah:

Selepas perbandingan pertama, n / 2 item akan ditinggalkan. Selepas yang kedua, n / 4 item akan ditinggalkan. Selepas yang ketiga, n / 8.

Perhatikan bahawa jumlah item terus menjadi separuh sehingga ia mencapai n / 2i di mana saya adalah jumlah perbandingan. Selepas semua pemisahan, kami berakhir dengan hanya 1 item.

Ini bermaksud:

n / 2i = 1 Oleh itu, carian binari adalah O (log n).

Beralih ke Pengisihan

Dalam carian binari, kami mempertimbangkan kes di mana susunan yang diberikan sudah diperintahkan. Tetapi andaikan anda mempunyai set data yang tidak tersusun dan anda mahu melakukan carian binari di atasnya. Apa yang anda akan buat?

Jawapannya mudah: urutkan. Terdapat sebilangan teknik penyortiran dalam sains komputer yang telah diteliti dengan baik. Salah satu teknik yang boleh anda mulakan ialah algoritma pemilihan, sementara kami juga mempunyai banyak panduan yang berkaitan dengan bidang lain.

Berkongsi Berkongsi Tweet E-mel Cara Menggunakan Urutan Pemilihan

Jenis pemilihan agak sukar untuk difahami untuk pemula, tetapi tidak terlalu mencabar apabila anda mendapat perubahan.

Baca Seterusnya
Topik-topik yang berkaitan
  • Pengaturcaraan
  • Teknologi Dijelaskan
  • Pengaturcaraan
  • Algoritma
  • Analisis data
Mengenai Pengarang Jerome Davidson(22 Artikel Diterbitkan)

Jerome adalah Penulis Kakitangan di MakeUseOf. Dia merangkumi artikel mengenai Pengaturcaraan dan Linux. Dia juga peminat crypto dan selalu mengawasi industri crypto.

Lagi Dari Jerome Davidson

Langgan buletin kami

Sertailah buletin kami untuk mendapatkan petua, ulasan, ebook percuma, dan tawaran eksklusif!

Klik di sini untuk melanggan