Sleep sort: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
m Bot: inserimento portale (via JWB) |
||
(11 versioni intermedie di 5 utenti non mostrate) | |||
Riga 1:
{{S|linguaggi di programmazione}}
{{Algoritmo|classe=[[Algoritmo di ordinamento]]|struttura dati=[[Array]]|tempo migliore=<math>O(max(input))</math>|tempo peggiore=<math>O(n^2+max(input))</math>|immagine=Sleep Sort Animation.gif|didascalia=Esempio di sleep sort ordina un array di interi casuali. L'asse orizzontale è l'indice dell'array e l'asse verticale è l'intero.}}
'''Sleep sort''' (in italiano: ordinamento assonnato) è un [[algoritmo di ordinamento]] basato sul tempo.
''Sleep sort'' lavora
Ogni contatore è inizialmente impostato con il valore dell'elemento che deve essere ordinato.
I contatori sono poi decrementati alla stessa velocità.
Quando un dato contatore finisce, l'elemento associato viene aggiunto alla fine della lista. Poiché i contatori si fermano a seconda della grandezza degli elementi, la lista sarà ordinata una volta che tutti i contatori sono fermi.
Può essere implementato utilizzando i timer del sistema operativo, per esempio facendo un fork di un processo separato per ogni elemento, o più semplicemente utilizzano un vettore di contatori.
== Codice ==
=== Bash ===
<
#!/bin/bash
function f() {
Riga 17 ⟶ 24:
done
wait
</syntaxhighlight>
=== Python ===
<
from time import sleep
from threading import Timer
Riga 40 ⟶ 47:
sleepsort([333, 222 ,112, 777, 901, 455, 256, 313, 125, 625, 825, 999, 316])
</
public class SleepSort {
public static void main(String[] args) {
Riga 75 ⟶ 82:
{{Ordinamento}}
{{Portale|informatica}}
[[Categoria:Algoritmi di ordinamento]]
|