Saya mencari referensi bibliografi untuk algoritme / masalah berikut: Saya menamakannya "BiSelect" atau "t-ary Select" atau "Select in Union of Sorted Arays", tapi saya kira itu diperkenalkan sebelum dengan nama lain?
Masalah
Pertimbangkan masalah berikut:
Mengingat disjoint array yang disortir , dengan ukuran masing-masing , dan integer , berapakah nilai -th dari serikat yang disortir ?
Solusi
k = 2 A 1 [ t / 2 ] A 2 [ t / 2 ] A 1 [ t / 2 .. t ] A 2 [ 1 .. t / 2 ] A 1 [ 1 .. t / 2 ] A 2 [ t / 2 .. t ] t / 2 n 1 n 2 t
Ini digeneralisasikan ke algoritma yang sedikit lebih canggih yang berjalan dalam waktu untuk nilai k yang lebih besar , berdasarkan pada penghitungan median nilai-nilai untuk : the elemen terkecil dapat lebih lanjut diabaikan dalam array mana lebih kecil dari median, dan elemen peringkat di dapat lebih lanjut diabaikan dalam array lainnya, menghasilkan separuh dari dalam setiap pengulangan (dan biaya untuk median).
Referensi?
Saya senang dengan solusi saya, tetapi saya kira masalahnya (dan solusinya) sudah diketahui. Hal ini terkait dengan algoritma waktu linier untuk menghitung median (dengan menyortir kelompok ukuran , dan muncul kembali pada median middle mereka), tetapi sedikit lebih umum. Saya bertanya kepada beberapa perguruan tinggi di Madalgo di Aarhus (Denmark), dan kemudian beberapa lainnya di bengkel Stringology (Rouen), tanpa hasil: Saya berharap seseorang yang lebih berpengetahuan dapat membantu di Stack Exchange ...
Motivasi
Solusi untuk masalah ini memiliki aplikasi untuk Struktur Data yang Ditangguhkan pada array (memang, dapat dilihat sebagai operator dalam struktur data yang ditangguhkan untuk penyatuan array yang diurutkan); dan dengan cara yang lebih berbelit-belit, dengan perhitungan adaptif kode bebas awalan yang optimal.
sumber