Questa è una domanda di code-golf.
Ingresso
Un elenco di numeri interi non negativi in qualsiasi formato è il più conveniente.
Produzione
Lo stesso elenco in ordine ordinato in qualsiasi formato è il più conveniente.
Restrizione
- Il codice deve essere eseguito nel tempo O (n log n) nel peggiore dei casi in cui
n
è il numero di numeri interi nell'input. Ciò significa che Quicksort randomizzato è fuori ad esempio. Tuttavia, ci sono molte altre opzioni tra cui scegliere. - Non utilizzare alcuna libreria / funzione / simile di ordinamento. Inoltre, non utilizzare nulla che svolga la maggior parte del lavoro di ordinamento come una libreria di heap. Fondamentalmente, qualunque cosa tu attui, implementala da zero.
Puoi definire una funzione se vuoi, ma per favore mostrane un esempio in un programma completo che funziona davvero. Dovrebbe essere eseguito correttamente e rapidamente su tutti i casi di test di seguito.
Casi test
In: [9, 8, 3, 2, 4, 6, 5, 1, 7, 0]
Out:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In: [72, 59, 95, 68, 84]
Out:[59, 68, 72, 84, 95]
In: [2, 2, 1, 9, 3, 7, 4, 1, 6, 7]
Out:[1, 1, 2, 2, 3, 4, 6, 7, 7, 9]
In: [2397725, 1925225, 3304534, 7806949, 4487711, 8337622, 2276714, 3088926, 4274324, 667269]
Out:[667269,1925225, 2276714, 2397725,3088926, 3304534, 4274324, 4487711, 7806949, 8337622]
Le tue risposte
Indica l'algoritmo di ordinamento che hai implementato e la lunghezza della soluzione nel titolo della risposta.
O (n log n) algoritmi di ordinamento temporale
Esistono molti algoritmi temporali O (n log n) esistenti. Questa tabella contiene un elenco di alcuni di essi.
intersect
"simile" se ordina automaticamente l'array. Se rimuovi i duplicati, otterrai un output errato.
intersect
l'ordinamento automatico dell'array. Immagino che tu voglia escludere anche quelli. Che ne diciunique
(rimuovi duplicati, ordina il risultato)?