Bu algoritma sıralnmış veriler uzerinde istenilen elmanı bulma yontemidir. Bu algoritmaya gore arama işlemi dizinin ortasındaki elman ile aranılan elemanın karşılaştırlması şeklinde yapılır. Bu karşılaştırma işleminde 3 durum sozkonusudur.
Birinci durum : Aranılan eleman dizinin ortasındaki elemandan buyuktur. O zaman dizinin ortasını başlangıc noktası secerek dizinin tekrar ortasındaki elemanı bulmaya devam ederiz.
İkinci durum : Aranılan eleman dizinin ortasındaki elemandan kucuktur. O zaman dizinin ortasını bitiş noktası secerek dizinin tekrar ortasındaki elemanı bulmaya devam ederiz.
Ucuncu durum : Aranılan elaman dizideki elemana eşittir. O zaman istenilen eleman bulunmuştur. Aramayı keseriz.
Algoritmayı şu şekilde verebiliriz ;
ikili_arama(aranan)
Şimdi bu algoritmayı Visual basic'de gercekleştirelim. Bir onceki algoritmada anlattığımız programı geliştirerek devam edelim. Form uzerine bir buton daha yerleştiriniz. Butonun başlığını arama olarak değiştiriniz. Bu butonun click event'ine aşağıdaki kodu giriniz.
Kod:
Private Sub Command3_Click() Dim bas, son, aranan As Integer bas = 1 son = p aranan = Val(InputBox("Aranan elemanı giriniz ...", "Arama")) Do While bas < son orta = (bas + son) / 2 If aranan = dizi(orta) Then Print bas = orta - Int(orta) If bas < 0.5 Then orta = Int(orta) Else orta = Int(orta) + 1 End If Print "Aranan eleman "; orta; " sırada bulundu" Exit Sub ElseIf aranan < dizi(orta) Then son = orta Else bas = orta End If Loop Print Print "Aranan elaman bulunamadı." End Sub
__________________
İkili Arama Algoritması
Programlama0 Mesaj
●23 Görüntüleme
- ReadBull.net
- Programlama ve Yazılım
- Programlama
- İkili Arama Algoritması