Pengertian Binary Search dan Implementasinya pada bahasa python
Binary search adalah metode pencarian suatu data atau elemen di dalam suatu array dengan kondisi data dalam keadaan terurut. Proses pencarian binary search hanya dapat dilakukan pada sekumpulan data yang sudah diurutkan terlebih dahulu. Prinsip dari binary search terhadap N elemen dapat dijelaskan seperti berikut:
1. Tentukan posisi awal = 0 dan posisi akhir = N-1.
2. Hitung posisi tengah = (posisi awal + posisi akhir)/2.
3. Bandingkan data yang dicari dengan elemen posisi tengah.
- - Jika sama maka catat posisi dan cetak kemudian berhenti.
- - Jika lebih besar maka akan dilakukan pencarian kembali kebagian kanan dengan posisi awal = posisi tengah +1 dan posisi akhir tetap kemudian ulangi mulai poin 2.
- - Jika lebih kecil maka akan di lakukan pencarian kembali ke bagian kiri dengan nilai posisi awal tetap dan nilai posisi akhir = posisi tengah-1 kemudian ulangi mulai poin 2.
Misalkan kita mempunyai sederatan data dalam array nilai sebanyak 7 elemen dan akan dilakukan pencarian data
- data = [10,4,5,9,2,1,7]
data diatas harus diurutkan terlebih dahulu
-> Pelajari Shorting pada python
data = [1, 2, 4, 5, 7, 9, 10] #Data setelah diurutkan
- tentukan nilai (a) yang mau dicari (search)
search = a #search = nama var , a = nilai inputan
- tentukan nilai awal dan nilai ahir
first = 0 #nilai awal 0 / index ke 0
last = len(data)-1 #Panjang data -1
found = false #Kondisi bahwa data belum ditemukan
- pengkondisian dan perulangan
selama first <= last dan variable found masih bernilai false maka
- mid = (first+last)//2
- jika data[mid] == search: #jika list (data) index ke (mid) sama dengan nilai yang dicari (search)
found = True #maka ubah nilai variabel (found) menjadi True
found = True #maka ubah nilai variabel (found) menjadi True
- namun bila data[mid] tidak sama dengan nilai yang dicari maka lakukan pengkondisian lagi
if search < data[mid]: #jika nilai variabel (search) < data indek ke [mid] maka
last = mid-1 # Variabel last = nilai mid - 1
else: #jika nilai variabel (search) > data indek ke [mid] maka
first = mid+1 # Variabel first = mid + 1
if search < data[mid]: #jika nilai variabel (search) < data indek ke [mid] maka
last = mid-1 # Variabel last = nilai mid - 1
else: #jika nilai variabel (search) > data indek ke [mid] maka
first = mid+1 # Variabel first = mid + 1
- cetak hasil pencarian
if found : #jika ditemukan
print('Data Ditemukan')
print('Data anda ada di indek ke -',mid,'baris ke -'mid+1)
else : #jika tidak ditemukan
print('DAta Tidak Ditemukan')
print('Data Ditemukan')
print('Data anda ada di indek ke -',mid,'baris ke -'mid+1)
else : #jika tidak ditemukan
print('DAta Tidak Ditemukan')
Nah Seperti itulah penggambaran tentang binary search , langsung saja saya bagikan source codenya
def bincar(a,b):
data = b
search = a
first = 0
last = len(data)-1
found = False
while first <= last and not found:
mid = (first+last)//2
if data[mid] == search:
found = True
else:
if search < data[mid]:
last = mid-1
else:
first = mid+1
if found :
print('Data Ditemukan')
print('Data anda ada di indek ke -',mid,'baris ke -'mid+1)
else :
print('DAta Tidak Ditemukan')
a = int(input('Masukkan Nilai yang dicari :'))
print(bincar(a,hasil))
#NOTE :
- variable hasil berisi data nilai acak 'data = [10,4,5,9,2,1,7]' yang telah di shorting menjadi [1, 2, 4, 5, 7, 9, 10]
Cukup sekian postingan saya kali ini semoga bermanfaat , terimakasih
Baca juga mengenai 'Pengertian Linear Search dan implementasinya pada bahasa python'
Baca juga mengenai 'Pengertian Linear Search dan implementasinya pada bahasa python'
EmoticonEmoticon