Neden ikili aramaya ikili arama denir?


9

Birkaç olası açıklama duydum, bu yüzden güvenilir bir referans istiyorum.

Güncelleme 05.19: Soru ile ilgileniyorum çünkü öğrencilerimden biri tezinde adının aşağıdaki açıklamadan geldiğini yazdı (1). Şimdiye kadar bunun açıklamadan geldiğini düşündüm / duydum (2). Hem tezinde yanlış olan şeylere izin verdiğim için hem de doğru olursa onu kaldırmasını söylerken kendimi kötü hissederdim.

(1) aralığında bir tamsayı aramayı düşünün . Biz kullanarak bulabilirsiniz adımında sorarak soruları ikili sayının rakamı.[0,2n-1]nbenbenth

Biz bir arama alanı varsa (2) elemanları, biz tekrar tekrar uzayda kalan kısmını bölmek sorularla bilinmeyen bir unsuru bulabilirsiniz ikisi .2n

Ve evet, (2) 'nin (1) ile aynı algoritmayı verebileceğini biliyorum ama buradaki nokta bu değil. (2) daha genel sorunlar için de uygulanabilir.


1
Ayrıca, sorunun referans istediğini lütfen unutmayın. Lütfen güvenilir bir kaynak vermeden böyle bir nedenden ötürü olduğunu söyleyerek cevap vermeyin.
David Richerby

1
@DavidRicherby, Hayır, merak "güvenilir" bir referans talep etmek için yeterli motivasyon değildir. Merak , "İkili arama neden ikili arama olarak adlandırılır?" Sorusunu sormak için yeterli bir motivasyon olabilir, ancak referans / güvenilir bir kaynak istemek için yeterli bir neden değildir ve "bir açıklama ile cevap verme; sadece ben msgstr "güvenilir kaynaklar istiyorum". Eğer OP birden fazla çelişkili açıklama ile karşılaşmışsa, OP bize bu soruda bunları anlatmalıdır (Math.SE sorusunun çelişkili açıklamalara yol açmadığını unutmayın).
DW

3
Bence hangi açıklamalara sahip olduğunuzu belirtmelisiniz. Onların alması gereken güven hakkında bir fikrimiz olabilir. İkili arama dediğiniz şeyin kendi, tercihen kesin bir tanımını vermeniz de yardımcı olabilir, böylece aynı kavramdan bahsettiğimizden emin olabiliriz veya alternatif olarak böyle bir tanıma referans verebiliriz.
babou

2
Cilt 3 Knuth TAoCP, kimse var mı? Benimki ofiste ...
Hendrik Ocak

Yanıtlar:


1

Açıklama (2) iyi bir açıklamadır.

(2), ikisinin daha iyi bir açıklamasıdır, çünkü sadece belirli bir örnek için değil, genel olarak ikili aramanın tüm kullanımları için geçerlidir. (1) bunu düşünmek için mantıksız bir yol değildir - (2) kadar genel veya tam değildir.

Öğrencinin bu ifadeyi düzeltmesini istemek zorunda olduğunuzu düşünmüyorum. Bir öğrencinin tezinde açıklama (1) yapması utanç verici olmaz, bu yüzden kendinizi kötü hissetmenize gerek yoktur. Ancak onlara bir şey öğretmek istiyorsanız, onlara açıklama (2) ve ikili aramanın nasıl daha genel olduğu ve "ikili arama" adının genel algoritma için neden makul olduğu hakkında bilgi verebilirsiniz. Ama bu küçük bir nokta ve şeyleri olduğu gibi bırakırlarsa sorunlu veya utanç verici olarak göreceğim bir şey değil.


referans yok! daha tarihsel bir soruya benziyor :(
vzn

1

Wikipedia'ya göre, ikili arama bir dizi sıralanmış değerdeki arama ile ilgilidir.

Bölme ve fethetme aramasını, arama alanını tekrar tekrar bölerek daha genel olarak ikiye bölünmüş arama olarak adlandırılır (kelimenin tam anlamıyla " ikiye bölünen "). Dichotomy kullanımı, bölünecek bir şeyiniz olduğu için sonn olarak diğer bağlamlarda düşünülebilir. Aslında öğrendiğim ilk ifade (lisede, sanırım ve uzun zaman önceydi), buna ikili olarak adlandırmak isteyebileceğiniz durumlar da dahil.

Afaik, "ikilik" iki parçanın (neredeyse) eşit olduğu anlamına gelmez.

İkili büyüklüğünde bir alanda arama yapmak için ayrıldığını bilmiyorum 2n.

Dichotomic açıkça daha genel bir terimdir, ancak ikiliyi yanlış kullanabilecek bazı kişilere bilgiçlikçi gelebilir.

Örneğiniz (1), bilinçli olarak ikili basamak istemediğinden, aksine bir aralığın medyanıyla karşılaştırmak için garip bir şekilde ifade edilir. Ancak ikili olarak nitelendirilebilir.

Örnek (2) belirsizdir. Sadece ikiye bölmek ikilik olarak adlandırılmalıdır. Şimdi, 2 eşit parça yapmanın bir yolunu (garip bir şekilde) varsaydığınız gibi, emin değilim.

Ancak insanların evet ya da hayır tarafından cevaplanan sorular sordukları bir tahmin oyunu açıkça ikiliktir.

Kendi tahminim, referans yok:

Orijinal ifade muhtemelen "ikilik" idi, ancak ikili sistemlerin, ikili bilgisayarın vb. Popülaritesi ile "ikili" terimi daha popüler hale geldi.

Önemli bir rol oynamış olabilecek diğer bir faktör de ikili aramanın (ikilik gibi) ikili seçimlere dayandırılmasıdır. Şimdi " dikotom seçim " ifadesi mevcuttur, ancak web'de yaklaşık 6 kat daha sık görülen " ikili seçim " den çok daha az kullanılır .

Yani bunu etkilemiş olabilir. Büyük ölçüde ikili sayıya daldığımız halde (yani biz bilgisayar bilimcisi), çoğu insanın ikili sayılarla ilgisi olmadığını ve bunlarla ilgili olmadığını, ancak ikili bir seçimden kolayca konuşacağını unutmamalıyız. İkili aramanın bilgisayar bilimcisi için bir konu olduğu doğrudur, ancak tam tersine güvenilir bir referansın kısa olması, ikili sayılardan herhangi bir doğrudan şekilde geldiğine inanmayacağım.


"Wikipedia'ya göre, ikili arama bir dizi sıralanmış değerdeki arama ile ilgilidir." - Vikipedi böyle okumadım. Wikipedia, ikili arama olarak saymak için bir dizide olması gerektiğini söylüyorsa, Wikipedia'nın bu konuda tartışılabilir olduğunu düşünüyorum - ancak Wikipedia makalesi bunu söylemiyor gibi görünüyor. Dahası Wikipedia makalesi ikili aramanın "herhangi bir monoton fonksiyonun argümanının üzerinde, fonksiyonun rasgele değere ulaştığı bir nokta için arama yapılmasına izin verdiğini" söylüyor - ki bu bir dizide aranmıyor.
DW

"Arama alanını art arda bölerek aramayı bölme ve fethetme genel kavramına ikilik arama denir" - Bu benim kendi deneyimimle uyuşmuyor. Bunu ikili arama denilen rutin olarak duyuyorum.
DW

@DW Daha önce de söylediğim gibi, belleğime güvenilecek fazla bir şey yok. Ancak ikili arama, hatta böl ve fethet, bilgisayarlarla bize gelen algoritmik terminolojidir. Ama ben ikilik aramayı ilk duyduğumda çok fazla bilgisayar olmadığını düşünüyorum, o zaman iyi bir basılı referans (f) hasta hafızamdan çok daha iyi olurdu. Vikipedi ile ilgili olarak, makalenin tamamını okumadım. Temelde kesin bir cevap alacağımı sanmıyordum ... ve bir şüphem var. Fikir geneldir, terminoloji güzeldir ve eldeki sorun ne olursa olsun her biri tarafından uyarlanmış olmalıdır.
babou


1

Knuth tarafından belirtilen Mauchly referansını aramaya çalıştım, ancak kütüphanem kopyalarını yanlış yerleştirmiş gibi görünüyor.

Bu arada, "ikili arama" için aşağıdaki erken-ish alıntılarını göz önünde bulundurun:

  • Halpern, Mark. " İkili arama özelliğine sahip değişken genişlikli tablolar. " ACM 1.2 (1958) iletişimi: 1-4.

    Bu raporda açıklanan altyordamlar ailesi, farklı uzunluklardaki girişleri içerecek, ancak bölüm veya "ikili" arama ile arama yapmaya uygun tablolar oluşturmak, aramak ve bakımını yapmak için tasarlanmıştır.

  • Nagler, H. " İki iç sınıflandırma yönteminin nispi verimliliğinin bir tahmini. " ACM'nin iletişimi 3.11 (1960): 618-620.

    Bu rapor IBM 705, I ve II modelleri ile ilgilidir. IBM Corporation'ın iki dahili sıralama yöntemi, geleneksel iki yönlü birleştirme ve D. Mordy'den kaynaklanan ikili aramanın bir biçimi için gereken makine süresinin bir çalışmasıdır.

  • Petersen, TL GİRİŞ ARAÇ SENTEZİ PROGRAMI. No. STL / TR-60-0000-09103 (pdf bağlantısı) . TRW SPACE TECHNOLOGY LABS LOS ANGELES CA, 1960.

    Değeri V0* hangisi için g(V0*)=0şimdi bulunmalı. Kolayca görülebilirg(0)=K3-1 ve g(K1)=-1, böylece gerekli değer V0* 0 ile K1 Eğer K3>1. Kökleri için ikili bir arama yapılır.g(V0*); V0* seçilen, ardışık değerleri arasındaki farkın mutlak değerinin V0* daha az 0.01.

İlk 1958 alıntısının "ikili" etrafındaki tırnak işaretlerini nasıl kullandığını, ancak 1960'daki üçüncü alıntıda, başka bir açıklama veya açıklama yapmadan ikili bir aramadan bahsedildiğini not edeceğim. "Bölümle arama" yönündeki açıklama, açıklama 2) 'nin daha yakın olduğunu, ancak daha fazla doğrulamanın gerekli olduğunu düşündürür.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.