Es gibt einen bekannten -Auswahlalgorithmus im ungünstigsten Fall , um das k -te größte Element in einem Array von ganzen Zahlen zu finden. Es verwendet einen Median-of-Medians- Ansatz, um einen ausreichend guten Pivot zu finden, partitioniert das Eingabearray an Ort und Stelle und setzt dann die Suche nach dem k -ten größten Element rekursiv fort .
Was wäre, wenn wir das Eingabearray nicht berühren könnten, wie viel zusätzlicher Speicherplatz würde benötigt, um das -te größte Element in O ( n ) -Zeit zu finden? Könnten wir das k -te größte Element in O ( 1 ) zusätzlichen Raum finden und trotzdem die Laufzeit O ( n ) behalten ? Zum Beispiel benötigt das Finden des maximalen oder minimalen Elements O ( n ) Zeit und O ( 1 ) Raum.
Intuitiv kann ich mir nicht vorstellen, dass wir es besser machen könnten als Raum, aber gibt es einen Beweis dafür?
Kann jemand auf eine Referenz verweisen oder ein Argument warum das ⌊ n / 2 ⌋ -te Element erfordern würde, dass O ( n ) -Raum in O ( n ) -Zeit gefunden wird?