Sorting algorithms/Sleep sort: Difference between revisions

Content deleted Content added
→‎{{header|Scala}}: Replaced very outdated code
Line 1,406: Line 1,406:
=={{header|Scala}}==
=={{header|Scala}}==
<lang scala>object SleepSort {
<lang scala>object SleepSort {

def sort(nums:Seq[Int])=nums foreach {n =>
def main(args: Array[String]): Unit = {
scala.concurrent.ops.spawn{
Thread.sleep(500*n)
val nums = args.map(_.toInt)
print(n+" ")
sort(nums)
Thread.sleep(nums.max * 21) // Keep the JVM alive for the example
}
}
def main(args:Array[String])={
sort(args map (_.toInt))
}
}

def sort(nums: Seq[Int]): Unit =
nums.foreach(i => new Thread {
override def run() {
Thread.sleep(i * 20) // just `i` is unpredictable with small numbers
println(i)
}
}.start())

}</lang>
}</lang>
Example:
Example:
<pre>&gt; scala SleepSort 1 9 8 7 6 5 3 4 5 2 0
<pre>$ scala SleepSort 1 3 6 0 9 7 4 2 5 8
0 1 2 3 4 5 5 6 7 8 9</pre>
0 1 2 3 4 5 5 6 7 8 9 </pre>


=={{header|Swift}}==
=={{header|Swift}}==