Jumlah perbandingan yang tepat untuk menghitung median


25

Volume III dari Knuth The Art of Computer Programming (pasal 5 ayat 3,2) termasuk mengikuti tabel daftar tepat jumlah minimum perbandingan yang diperlukan untuk memilih elemen th terkecil dari set disortir ukuran , untuk semua . Tabel ini, bersama dengan ekspresi bentuk tertutup terkenal dan , mewakili sebagian besar keadaan seni pada tahun 1976 .tn1tn10V1(n)=n1V2(n)=n2+n/2

Tabel dari Knuth III: 5.3.2

Apakah ada nilai yang lebih tepat dari dihitung dalam 36 tahun terakhir? Saya sangat tertarik pada nilai , jumlah minimum perbandingan yang diperlukan untuk menghitung median.Vt(n)M(n)=Vn/2(n)


Seperti yang ditunjukkan oleh @ MarkusBläser, tabel Knuth tampaknya sudah memasukkan hasil yang lebih baru dari Bill Gasarch, Wayne Kelly, dan Bill Pugh ( Menemukan engan terbesar n untuk n kecil, n . SIGACT News 27 (2): 88-96, 1996 .)


2
Makalah yang paling terkenal tentang topik ini, saya pikir, adalah tentang Pratt dan Yao (1976) yang dianggap sebagai orang pertama yang menemukan beberapa teknik (permusuhan) untuk membuktikan kelemahan pada masalah ini. Jika saya menemukan makalah terbaru tentang masalah ini, saya akan mengikuti kutipan yang dibuat untuk makalah ini . Makalah terbaru adalah karya Dor dan Zwick, tetapi ada juga survei tahun 1996 oleh Paterson (meskipun saya belum melihat untuk melihat apakah itu menyangkut dirinya sendiri dengan hasil yang tepat atau tidak).
Jérémie

1
Nitpicking: Dalam kalimat terakhir dalam pertanyaan, Anda mungkin memaksudkan langit-langit daripada lantai.
Tsuyoshi Ito

6
Jeff, ingin tahu mengapa Anda tertarik pada jawaban yang tepat.
Chandra Chekuri

5
Kenneth Oksanen menulis kode yang efisien untuk komputasi . Sayangnya, hanya ada abstrak yang tersedia sciencedirect.com/science/article/pii/S1571065306001582 Dua tahun lalu, salah satu siswa saya mengiriminya email dan mendapat kode darinya. Saya tidak ingat apakah beberapa nilai baru dapat diperoleh. Vi(n)
Markus Bläser

5
@ChandraChekuri: Saya bermain-main dengan varian algoritma seleksi linear waktu Blum-Floyd-Pratt-Rivest-Tarjan , sebagai masalah potensial algoritma pekerjaan rumah. Jika kita menggunakan algoritma perbandingan minimum untuk menemukan median di setiap blok, lalu ukuran blok apa yang memberi kita konstanta terbaik di big-Oh? 9 lebih baik dari 7 lebih baik dari 5; bagaimana dengan 11?
Jeffε

Jawaban:


17

Kenneth Oksanen telah menerbitkan tabel nilai yang diperluas hingga , berdasarkan pencarian komputernya sendiri . Okansen juga memberikan deskripsi pohon perbandingan optimal untuk sebagian besar nilai yang ia laporkan. Berikut screenshot dari mejanya:n=15

Batas Kenneth Oksanen untuk seleksi

Terima kasih kepada @ MarkusBläser untuk petunjuknya!


3

Saya ingin tahu apakah informasi ini mungkin berguna bagi Anda. Sayangnya itu tidak memberikan informasi tambahan untuk pertanyaan posting ini, tetapi lebih merupakan balasan untuk komentar Anda tentang apa ini untuk (menganalisis varian QuickSelect).

Jumlah perbandingan minimum yang diharapkan, yang dicatat atau tentu saja secara signifikan lebih mudah untuk dihitung (dengan harapan diambil secara seragam atas semua permutasi), v(n,t)vt(n)

vt(n)=n+min(t,nt)+l.o.t..

Hasil ini tidak jarang digunakan, dan khususnya adalah dasar untuk algoritma dalam "Adaptive Sampling for QuickSelect" oleh Martínez, Panario dan Viola . Titik awal dari makalah ini adalah QuickSelect median-of-three, dan kemudian bertanya: apakah berkaitan dengan memilih median secara sistematis, ketika elemen yang kita cari memiliki peringkat relatif jauh lebih rendah dari n / 2 atau lebih tinggi dari n / 2 ?

Dengan kata lain, misalkan Anda mencari elemen -th dalam daftar elemen, dan Anda memilih poros Anda dari kelompok elemen . Alih-alih mengambil median ( ), Anda akan mengambil mana . Mereka menunjukkan algoritma ini dapat, untuk pilihan secara praktis lebih efisien daripada varian median-of-three.knmm/2αmα=k/nm

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.