Sıralanmış dizilerin birleşiminden seçin: Zaten biliniyor mu?


12

Aşağıdaki algoritma / sorun için bibliyografik referanslar arıyorum: "BiSelect" veya "t-ary Select" veya "Sıralı Diziler Birliği'nde Seç" olarak adlandırdım, ama sanırım daha önce başka bir ad altında tanıtıldı?

Sorun

Aşağıdaki sorunu düşünün:

Verilen ayrık sıralı diziler , ilgili boyutları arasında ve bir tamsayıdır , ne bunların sıralanmış birliğin inci değeri ?kA1,,Akn1,,nkt[1..ni]t iAi

Çözümler

K = 2 ise zamanında çalışan çok basit ve zarif bir algoritma vardır : k = 2 ise , A_1 [t / 2] ile A_2 [t / 2] ve A_1 [t / 2..t] ve A_2 [1..t / 2] veya A_1 [1..t / 2] ve A_2 [t / 2..t] 'de buna göre her iki durumda da parametre t / 2 (ve bazı küçük optimizasyonlar N_1 veya n_2 daha küçüktür t ).O(lgmin{n1,n2,t})k=2k=2A1[t/2]A2[t/2]A1[t/2..t]A2[1..t/2]A1[1..t/2]A2[t/2..t]t/2n1n2t

Bu , [1.k] 'de i \ için A_i [t / k] değerlerinin medyanını hesaplamaya dayalı olarak, daha büyük k değerleri için O (k \ lg t) zamanında çalışan biraz daha karmaşık bir algoritmaya genelleme yapar : t / k en küçük elemanlar, A_i [t / k] orta değerden daha küçük olduğu k / 2 dizilerinde daha fazla göz ardı edilebilir ve [tt / k ..] ' deki sıra öğelerinin k / 2'de daha fazla göz ardı edilebilir her dizide t'nin yarıya inmesiyle sonuçlanan diğer diziler (ve medyan için O (k) maliyeti ).O(klgt)kAi[t/k]i[1..k]t/kk/2Ai[t/k][tt/k..]k/2tO(k)

Referanslar?

Çözümlerimden memnunum, ancak sorunun (ve çözümünün) zaten bilindiğini düşünüyorum. Medyanı hesaplamak için doğrusal zaman algoritması ile ilgilidir ( büyüklükteki grupları sıralayarak ve aracılarının ortancalarını geri çekerek), ancak biraz daha geneldir. Aarhus'ta (Danimarka) Madalgo'da ve daha sonra Stringology (Rouen) atölyesinde bazı kolejlere başarılı olmadan sordum: Daha bilgili birinin Stack Exchange'de yardımcı olabileceğini umuyorum ...5

Motivasyonları

Bu soruna yönelik çözümlerin dizilerdeki Ertelenmiş Veri Yapısına uygulamaları vardır (gerçekten de, dizili dizilerin birleşmesi için ertelenmiş veri yapısında bir operatör olarak görülebilir); ve daha kıvrımlı bir şekilde, en uygun önek içermeyen kodların uyarlanabilir hesaplamasına.

Yanıtlar:


2

Frederickson ve Johnson tarafından 1982'de tarif edilen algoritma, tüm setlerin aynı boyuta sahip olduğunu düşünmektedir. Ayrıca 1980'de farklı boyutlardaki sıralı setlerin avantajlarından yararlanan en uygun çözümü tarif ettiler. Bu algoritmanın karmaşıklığı .O(k+i=1klogni)

Referans

Greg N. Frederickson ve Donald B. Johnson. 1980. Genelleştirilmiş seçim ve sıralama (Ön Versiyon). On ikinci yıllık ACM Bilgisayar Teorisi Sempozyumu Bildiriler Kitabı (STOC '80). ACM, New York, NY, ABD, 420-428. DOI = 10.1145 / 800141.804690 http://doi.acm.org/10.1145/800141.804690



0

K = 2 kasası paralel birleştirme sıralamasında karşımıza çıkar, çünkü aynı sayıda paralellik sağlamak için farklı dizilerden iki sıralı dizinin birleştirilmesinin iki iş parçacığı arasında bölünmesi gerekir. Bu ödev çözümü bir referanstı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.