Programlama Ve Algoritmalar Deneme Sınavı Sorusu #750902

 Elemanları [45 12 31 23 1 5 32 15 3 23 88 ] olan bir dizide ikili arama yöntemiyle önce 31 daha sonra 3 aranmaktadır. Bu işlemler için toplamda kaç karşılaştırma yapmak gerekir?


2

3

4

8

Sonsuz sayıda


Yanıt Açıklaması:

Sıralanmamış bir diziyi ikili arama yöntemiyle kullanmak ikili aramanın mantığına ters olacaktır. Sonuçta aranılan eleman dizi içerisinde olsa bile bulunmama ihtimali yüksektir. Soruda da her ne kadar gerek 31 gerek 3 dizi içerisinde yer alsa da bunlar algoritma tarafından bulunamayacaklardır. 31 aradığımızı düşünelim. Önce dizinin ortası 5 ile karşılaştırma yapılacak ve 5 in sağ tarafındaki dizi elemanları içerisinde 31 aranacak. İkinci kez 15 ile karşılaştırma yapılacak ve 15 in sağındaki elemanlarla bir defa daha karşılaştırma olacak ve sayı 3 ile karşılaştırılıp 3ün yanındaki sayı olan 23 ile bir defa daha karşılaştırma yapılacak. Sonuçta 4 karşılaştırmadan sonra elemanın dizide olmadığına karar verilecek. 3 için de aynı yöntemle 4 karşılaştırma neticesinde dizide olmadığına kanaat getirilecek. Sonuçta 4+4 = 8 karşılaştırma yapılmış olacak. 

Yorumlar
  • 0 Yorum