Pencarian · Pelajaran 1 dari 10

Pencarian linear

8 menit baca · BelajarCode

Pencarian linear adalah cara mencari yang paling sederhana: periksa setiap data mulai dari yang pertama. Jika ketemu, kembalikan posisinya. Jika sampai akhir tidak ketemu, kembalikan tanda "tidak ada", biasanya -1.

Python
1def cari_linear(data, target):2    for i in range(len(data)):3        if data[i] == target:4            return i5    return -167nilai = [72, 85, 64, 91, 78, 55]8print(cari_linear(nilai, 91))9print(cari_linear(nilai, 100))
Keluaran
3
-1

Berapa banyak perbandingan?

Kecepatan algoritma pencarian diukur dari banyaknya perbandingan yang dilakukan.

Python
1def cari_linear_hitung(data, target):2    banding = 03    for i in range(len(data)):4        banding += 15        if data[i] == target:6            return i, banding7    return -1, banding89data = list(range(1, 1001))10print(cari_linear_hitung(data, 1))11print(cari_linear_hitung(data, 500))12print(cari_linear_hitung(data, 1000))13print(cari_linear_hitung(data, 5000))
Keluaran
(0, 1)
(499, 500)
(999, 1000)
(-1, 1000)
Kasus terbaik, rata-rata, dan terburuk pada n data
KasusKapan terjadiBanyak perbandingan
TerbaikTarget ada di posisi pertama1
Rata-rataTarget ada di sembarang posisisekitar n / 2
TerburukTarget di posisi terakhir atau tidak adan

Banyaknya perbandingan tumbuh sebanding dengan banyaknya data. Data dua kali lebih banyak berarti pencarian terburuknya dua kali lebih lama.

Kelebihan pencarian linear

  • Bisa dipakai untuk data yang tidak urut.
  • Mudah ditulis dan sulit salah.
  • Cukup cepat untuk data kecil.

Operator in dan metode index() pada list Python sebenarnya melakukan pencarian linear.

Cek pemahaman

Sebuah list berisi 2.000 nama acak. Berapa perbandingan paling banyak yang dibutuhkan pencarian linear?

Latihan

Semua posisi

Ubah pencarian linear supaya mengembalikan semua posisi tempat target ditemukan, dalam bentuk list. Uji dengan data [5, 3, 5, 8, 5, 1] dan target 5.

Jalankan contoh kode di pelajaran ini tanpa instalasi lewat compiler Python online.

Latih konsep ini

Tandai pelajaran ini selesai

Masuk ke aplikasi untuk mencatat kemajuan, lalu lanjutkan ke pelajaran berikutnya dari perangkat mana pun.

Buka di aplikasi