Seçim algoritması için alan bağlı mı?


11

Bir tamsayılar dizisinde k 'en büyük elementi bulmak için iyi bilinen en kötü durum seçim algoritması vardır . Bu bir kullanır medyan medyan-of-the yeterince iyi bir pivotu bulmaya yaklaştıkça, yinelemeli sonra bölümler yerinde girdi dizi ve için 's arayışında devam k 'inci büyük elemanı.O(n) kk

Biz ne kadar ekstra alan bulmak için gerekli olacaktır girdi dizisi dokunmasının yasak olmasaydı ne 'de inci en büyük elemanı Ç ( n ) zaman? Bulabildiğimiz k 'de inci en büyük elemanı Ç ( 1 ) İlave alan ve hala çalışma zamanı tutmak O ( n ) ? Örneğin, maksimum veya minimum elemanın bulunması O ( n ) zamanını ve O ( 1 ) boşluğunu alır. kO(n)kO(1)O(n)O(n)O(1)

Sezgisel olarak, uzayından daha iyisini yapabileceğimizi hayal edemiyorum ama bunun bir kanıtı var mı?O(n)

Birisi noktası referans Can veya bir tartışma neden ile gelip 'gerektirecektir inci eleman Ç ( n ) alan bulunacak O ( n ) zaman?n/2O(n)O(n)


2
Ben bir uzman değilim ama belki de bu makaleler yararlıdır: Seçim ve Uzay-zaman
Vor

Yanıtlar:


13

Girişi değiştirmeden zaman ve O ( 1 ) ekstra bellek hücreleriyle seçim yapabiliyorsanız açık bir sorundur ( buraya bakın ). Ama buna oldukça yaklaşabilirsiniz.O(n)O(1)

O(n1+ε)O(1/ε)ε>0

O(n)pp

pA(k)ε=1/kA(k)A(k1)A(1)algoritması. Doğru blok boyutu (ve matematiği yapmak) yukarıda belirtildiği gibi size çalışma süresi ve alan gereksinimleri sağlar.

Btw, aradığınız algoritmalar, yakın zamanda sabit çalışma alanı algoritmaları olarak adlandırıldı .

Alt sınırın farkında değilim.

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.