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 FAassociando SCHIIFOOOOOun contatore ad ogni elemento da ordinare.
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 ===
<sourcesyntaxhighlight lang ="bash">
#!/bin/bash
function f() {
Riga 17 ⟶ 24:
done
wait
</syntaxhighlight>
</source>
 
=== Python ===
 
<sourcesyntaxhighlight lang="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])
 
</sourcesyntaxhighlight>'''JAVA'''<syntaxhighlight lang="java">
public class SleepSort {
public static void main(String[] args) {
Riga 75 ⟶ 82:
 
{{Ordinamento}}
 
{{Portale|informatica}}
 
[[Categoria:Algoritmi di ordinamento]]