Algoritma Pencarian Linear & Biner Dijelaskan

Algoritma Pencarian Linear & Biner Dijelaskan

Kemampuan untuk mencari beberapa data merupakan aspek penting dari ilmu komputer. Algoritma pencarian digunakan untuk mencari item tertentu dalam kumpulan data.





Algoritma mengembalikan hasil boolean (benar atau salah) ke kueri penelusuran. Mereka juga dapat dimodifikasi untuk memberikan posisi relatif dari nilai yang ditemukan.





Untuk artikel ini, algoritme akan berkonsentrasi pada penentuan apakah suatu nilai ada.





Algoritma Pencarian Linier

Pencarian linier juga dikenal sebagai pencarian sekuensial. Dalam jenis pencarian ini, setiap nilai dalam daftar dikunjungi satu per satu secara berurutan sambil memeriksa apakah ada nilai yang diinginkan.

Algoritme memeriksa nilai demi nilai hingga menemukan nilai yang Anda cari atau kehabisan nilai untuk dicari. Ketika nilai pencarian habis, itu berarti kueri pencarian Anda tidak ada dalam daftar.



Algoritma pencarian sekuensial mengambil daftar nilai dan item yang diinginkan dalam daftar sebagai parameternya. Hasil pengembalian diinisialisasi sebagai Palsu dan akan berubah menjadi benar ketika nilai yang diinginkan ditemukan.

Lihat implementasi Python di bawah ini 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

Skenario kasus terbaik terjadi ketika item yang diinginkan adalah yang pertama dalam daftar. Kasus terburuk terjadi ketika item yang diinginkan adalah yang terakhir dalam daftar (item ke-n). Oleh karena itu, kompleksitas waktu untuk pencarian linier adalah O(n).

Rata-rata skenario kasus pada algoritma di atas adalah n/2.





Terkait: Apa itu Notasi Big-O?

Penting untuk diketahui bahwa algoritme yang digunakan mengasumsikan bahwa daftar item acak disediakan untuknya. Artinya, item daftar tidak dalam urutan tertentu.

cara mendapatkan pesan facebook yang dihapus

Misalkan item berada dalam urutan tertentu, katakanlah dari terkecil ke terbesar. Ini akan mungkin untuk mencapai beberapa keuntungan dalam perhitungan.

Ambil contoh mencari 19 dalam daftar yang diberikan: [2, 5, 6, 11, 15, 18, 23, 27, 34]. Setelah mencapai 23, menjadi jelas bahwa barang yang dicari tidak ada dalam daftar. Oleh karena itu, tidak lagi penting untuk melanjutkan pencarian item daftar lainnya.

Algoritma Pencarian Biner

Anda telah melihat bagaimana daftar yang diurutkan dapat mengurangi perhitungan yang diperlukan. Algoritme pencarian biner bahkan lebih memanfaatkan efisiensi ini yang diperkenalkan oleh daftar terurut.

Algoritme dimulai dengan mengambil nilai tengah dari daftar yang dipesan dan memeriksa apakah itu nilai yang diinginkan. Jika tidak, maka nilainya dicek apakah lebih kecil atau lebih besar dari nilai yang diinginkan.

Jika kurang, maka tidak perlu memeriksa bagian bawah daftar. Jika tidak, jika lebih besar, maka pindah ke bagian atas daftar.

Terkait: Apa itu Rekursi dan Bagaimana Anda Menggunakannya?

Terlepas dari sublist mana pun (kiri atau kanan) yang dipilih, nilai tengah akan ditentukan lagi. Nilai diperiksa lagi jika itu adalah nilai yang diperlukan. Jika tidak, akan diperiksa apakah lebih kecil atau lebih besar dari nilai yang diminta.

perangkat lunak pengeditan video gratis terbaik untuk mac

Proses ini diulang sampai nilai ditemukan jika ada.

Implementasi Python di bawah ini adalah untuk algoritma pencarian biner.

def binarySearch(daftar saya, 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

Skenario kasus terbaik terjadi ketika item yang diinginkan ditemukan sebagai item tengah. Skenario terburuk tidak semudah itu. Ikuti analisa di bawah ini:

Setelah perbandingan pertama, n/2 item akan tersisa. Setelah yang kedua, n/4 item akan tersisa. Setelah yang ketiga, n/8.

Perhatikan bahwa jumlah item terus berkurang separuh hingga mencapai n/2i di mana i adalah jumlah perbandingan. Setelah semua pemisahan, kami hanya memiliki 1 item.

Ini menyiratkan:

n/2i=1 Oleh karena itu, pencarian biner adalah O(log n).

Pindah ke Menyortir

Dalam pencarian biner, kami mempertimbangkan kasus di mana array yang diberikan sudah dipesan. Tapi misalkan Anda memiliki dataset yang tidak berurutan dan Anda ingin melakukan pencarian biner di atasnya. Apa yang akan kamu lakukan?

Jawabannya sederhana: urutkan. Ada sejumlah teknik penyortiran dalam ilmu komputer yang telah diteliti dengan baik. Salah satu teknik yang dapat Anda mulai pelajari adalah algoritme pengurutan pemilihan, sementara kami juga memiliki banyak panduan yang terkait dengan area lain.

Membagikan Membagikan Menciak Surel Cara Menggunakan Sortir Seleksi

Sortir seleksi agak sulit dipahami untuk pemula, tetapi tidak terlalu menantang setelah Anda menguasainya.

Baca Selanjutnya
Topik-topik yang berkaitan
  • Pemrograman
  • Teknologi Dijelaskan
  • Pemrograman
  • algoritma
  • Analisis data
Tentang Penulis Jerome Davidson(22 Artikel Diterbitkan)

Jerome adalah Staf Penulis di MakeUseOf. Dia meliput artikel tentang Pemrograman dan Linux. Dia juga penggemar kripto dan selalu mengawasi industri kripto.

More From Jerome Davidson

Berlangganan newsletter kami

Bergabunglah dengan buletin kami untuk kiat teknologi, ulasan, ebook gratis, dan penawaran eksklusif!

Klik di sini untuk berlangganan