Lascia che A1,A2,...,An
sia numeri reali tra [0,2k]
(k è costante). È noto che per qualsiasi coppia di Ai,AJ
quindi |Ai-Aj|>=k/n
,Ordina una serie di n numeri tra [0,2k], dove esiste una coppia tra: | Ai-Aj |> = k/n
Descrivere un algoritmo che ordina i numeri nella peggiore delle ipotesi di runtime O(n)
.
So che la risposta dovrebbe essere bucket-sort. Non riesco a capire perché, E in caso affermativo, come faccio a scegliere la quantità corretta di benne? In che modo aiuta lo |Ai-Aj|>=k/n
?
ordinamento intero FTW! –
@templatetypedef poiché ogni coppia '> = k/n', quindi non sono sufficienti i bucket' 2n' di dimensione 'k/n'? Dì 'n = 8, k = 30' e i numeri sono:' 0,4,7,12,15,18,22,25' quindi 'B0 = 0',' B1 = 4', 'B2 = 7', 'B3 = 12',' B4 = 15', 'B5 = 18',' B6 = 22', 'B7 = 25', le tazze di riposo sono vuote? Voglio dire che ogni bucket avrà 0 o al massimo. 1 numero. –