Mengapa pencarian biner disebut pencarian biner?


9

Saya mendengar beberapa penjelasan yang mungkin, jadi saya ingin referensi yang dapat dipercaya.

Pembaruan 05.19: Saya tertarik dengan pertanyaan itu karena salah seorang siswa saya menulis dalam tesisnya bahwa nama tersebut berasal dari penjelasan di bawah ini (1). Sampai sekarang saya berpikir / mendengar bahwa itu berasal dari penjelasan (2). Saya akan merasa sedih karena membiarkan hal yang salah dalam tesisnya, serta menyuruhnya untuk menghapusnya jika itu mungkin benar.

(1) Pertimbangkan pencarian bilangan bulat dalam interval . Kita dapat menemukannya menggunakan n pertanyaan dengan bertanya pada langkah i yang i t h biner digit dari nomor tersebut.[0,2n1]niith

(2) Jika kami memiliki ruang pencarian dengan elemen , kami dapat menemukan elemen yang tidak diketahui dengan pertanyaan yang berulang kali membagi bagian ruang yang tersisa menjadi dua .2n

Dan ya, saya tahu bahwa (2) dapat memberikan algoritma yang sama dengan (1) tetapi bukan itu intinya di sini. (2) dapat juga diterapkan untuk masalah yang lebih umum.


1
Juga, harap dicatat bahwa pertanyaan itu meminta referensi. Tolong jangan menjawab mengatakan bahwa itu karena alasan ini-dan-itu tanpa memberikan sumber yang dapat diandalkan.
David Richerby

1
@DavidRicherby, Tidak, rasa ingin tahu bukanlah motivasi yang cukup untuk menuntut referensi yang "dapat dipercaya". Keingintahuan akan menjadi motivasi yang cukup untuk bertanya "Mengapa pencarian biner disebut pencarian biner?", Tapi itu bukan alasan yang cukup untuk meminta referensi / sumber yang dapat dipercaya, dan itu bukan alasan yang cukup untuk mengatakan "jangan menjawab dengan penjelasan; saya hanya menjawab ingin sumber yang dapat dipercaya ". Jika OP menemukan banyak penjelasan yang saling bertentangan, maka OP harus memberi tahu kami tentang mereka dalam pertanyaan (perhatikan pertanyaan Math.SE tidak mengarah pada penjelasan yang saling bertentangan).
DW

3
Saya pikir Anda harus mulai dengan memberikan penjelasan apa yang Anda miliki. Kita mungkin memiliki gagasan tentang kepercayaan yang seharusnya mereka dapatkan. Dan mungkin membantu jika Anda memberikan definisi Anda sendiri, lebih tepatnya tepat, tentang apa yang Anda sebut pencarian biner, sehingga kami dapat yakin untuk berbicara tentang konsep yang sama, atau sebagai alternatif memberikan referensi ke definisi tersebut.
babou

2
Volume 3 dari Knuth TAoCP, ada orang? Milik saya di kantor ...
Hendrik

Jawaban:


1

Penjelasan (2) adalah penjelasan yang baik.

(2) adalah penjelasan yang lebih baik dari keduanya, karena itu berlaku secara umum untuk semua penggunaan pencarian biner, bukan hanya satu contoh spesifik. (1) bukan cara yang tidak masuk akal untuk memikirkannya - hanya saja tidak umum atau selengkap (2).

Saya tidak berpikir Anda perlu merasa wajib untuk meminta siswa untuk memperbaiki pernyataan ini. Tidak akan memalukan jika seorang siswa memberikan penjelasan (1) dalam tesis mereka, jadi Anda tidak perlu merasa buruk. Tetapi jika Anda ingin mengajari mereka sesuatu, Anda dapat memberi tahu mereka tentang penjelasan (2) dan tentang bagaimana pencarian biner lebih umum dan mengapa nama "pencarian biner" juga masuk akal untuk algoritma umum. Tetapi ini adalah hal kecil dan bukan sesuatu yang saya anggap bermasalah atau memalukan jika mereka membiarkannya.


tidak ada referensi! sepertinya lebih seperti pertanyaan historis :(
vzn

1

Menurut Wikipedia, pencarian biner menyangkut pencarian dalam array nilai yang diurutkan.

Konsep yang lebih umum dari pencarian membagi dan menaklukkan dengan berulang kali membagi ruang pencarian disebut pencarian dikotomik (secara harfiah: "yang memotong dua"). Penggunaan dikotomi dapat dipertimbangkan dalam konteks lain, sama seperti Anda memiliki sesuatu untuk dibagi. Ini sebenarnya ungkapan pertama yang saya pelajari (di sekolah menengah, saya kira, dan itu sudah lama sekali), termasuk dalam kasus di mana Anda mungkin ingin menyebutnya biner.

Afaik, "dikotomik" tidak menyiratkan bahwa kedua bagian itu (hampir) sama.

Saya tidak tahu bahwa biner disediakan untuk mencari dalam ruang ukuran 2n

Dichotomic jelas merupakan istilah yang lebih umum, tetapi mungkin terdengar membingungkan bagi sebagian orang yang mungkin menggunakan biner secara tidak tepat.

Contoh Anda (1) secara aneh dinyatakan, karena seseorang tidak secara sadar meminta angka biner, melainkan untuk perbandingan dengan median dari suatu interval. Tapi itu bisa disebut sebagai biner.

Contoh Youe (2) tidak jelas. Membagi menjadi dua harus disebut dikotomik. Sekarang, ketika Anda tampaknya menghipotesiskan (anehnya) cara membuat 2 bagian yang sama, saya tidak yakin.

Tapi permainan menebak, di mana orang-orang mengajukan pertanyaan yang dijawab dengan ya atau tidak jelas dikotomik.

Tebakan saya sendiri, tidak ada referensi yang diberikan:

Ungkapan asli mungkin "dikotomik", tetapi dengan popularitas sistem biner, komputer biner, dll, istilah "biner" menjadi lebih populer.

Salah satu faktor lain yang mungkin memainkan peran penting adalah pencarian biner (dan juga dikotomik) didasarkan pada pilihan biner. Sekarang ungkapan " pilihan dikotomis " memang ada, tetapi jauh lebih sedikit digunakan daripada " pilihan biner ", yang muncul sekitar 6 kali lebih sering di web.

Jadi ini mungkin mempengaruhi hal itu. Kita harus ingat bahwa meskipun kita sebagian besar terbenam dalam bilangan biner (maksud saya kita, ilmuwan komputer), kebanyakan orang tidak dan tidak peduli dengan bilangan biner, tetapi akan dengan mudah berbicara tentang pilihan biner. Memang benar bahwa pencarian biner adalah topik untuk ilmuwan komputer, tetapi pendek referensi yang dapat diandalkan sebaliknya saya tidak akan percaya itu berasal dari angka biner dengan cara langsung.


"Menurut Wikipedia, pencarian biner menyangkut pencarian dalam array nilai yang diurutkan." - Nah, bukan itu cara saya membaca Wikipedia. Jika Wikipedia mengatakan itu harus dalam array untuk dihitung sebagai pencarian biner dengan baik, maka, saya pikir Wikipedia dapat diperdebatkan tentang hal ini - tetapi artikel Wikipedia tampaknya tidak mengatakan itu. Lebih jauh ke bawah artikel Wikipedia mengatakan bahwa pencarian biner "memungkinkan pencarian argumen dari fungsi monoton apa pun untuk suatu titik, di mana fungsinya mencapai nilai arbitrer" - yang bukan pencarian dalam array.
DW

"Konsep yang lebih umum dari pencarian membagi dan menaklukkan dengan berulang kali membagi ruang pencarian disebut pencarian dikotomik" - Itu tidak cocok dengan pengalaman saya sendiri. Saya secara rutin mendengar ini disebut pencarian biner.
DW

@ WD Seperti yang saya katakan sebelumnya, ingatan saya tidak terlalu bisa dipercaya. Tapi pencarian biner, atau bahkan membagi dan menaklukkan adalah terminologi algoritmik yang datang kepada kita dengan komputer. Tapi saya pikir tidak ada banyak komputer di sekitar ketika saya pertama kali mendengar pencarian dikotomik, maka referensi cetak yang baik akan jauh lebih baik daripada (f) memori saya yang sakit. Mengenai wikipedia, saya tidak membaca keseluruhan artikel. Pada dasarnya saya tidak berpikir saya akan mendapatkan jawaban yang pasti ... dan saya ragu ada satu. Idenya adalah umum, terminologi yang bagus, dan harus disesuaikan oleh masing-masing untuk masalah apa pun yang dihadapi.
babou


1

Saya mencoba mencari referensi Mauchly yang dikutip oleh Knuth tetapi perpustakaan saya tampaknya telah salah menempatkan salinan mereka.

Sementara itu, pertimbangkan kutipan awal-ish berikut untuk "pencarian biner":

  • Halpern, Mark. " Tabel lebar variabel dengan fasilitas pencarian biner. " Komunikasi ACM 1.2 (1958): 1-4.

    Keluarga subrutin yang dijelaskan dalam laporan ini dirancang untuk membuat, mencari dan memelihara tabel yang berisi entri dengan panjang yang berbeda, namun harus dapat dicari berdasarkan partisi, atau pencarian "biner".

  • Nagler, H. " Perkiraan efisiensi relatif dua metode penyortiran internal. " Komunikasi ACM 3.11 (1960): 618-620.

    Laporan ini menyangkut IBM 705, model I dan II. Ini adalah studi tentang waktu mesin yang diperlukan oleh dua metode penyortiran internal, penggabungan dua arah konvensional, dan bentuk pencarian biner, yang disebabkan oleh D. Mordy, dari IBM Corporation.

  • Petersen, TL PROGRAM SINTESIS KENDARAAN ENTRI KEMBALI Tidak. STL / TR-60-0000-09103 (tautan pdf) . TRW SPACE TECHNOLOGY LABS LOS ANGELES CA, 1960.

    V0g(V0)=0g(0)=K31g(K1)=1V0K1K3>1g(V0)V0V00,01

Saya akan mencatat bagaimana kutipan tahun 1958 pertama menggunakan tanda kutip di sekitar "biner" tetapi pada kutipan ketiga pada tahun 1960, pencarian biner disebutkan tanpa deskripsi atau penjelasan lebih lanjut. Alusi untuk "mencari berdasarkan partisi" cenderung menyarankan bahwa penjelasan 2) lebih dekat, tetapi verifikasi lebih lanjut diperlukan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.