Sorting algorithms/Comb sort: Difference between revisions

Scala contribution added.
No edit summary
(Scala contribution added.)
Line 2,289:
<pre>[12, 14, 23, 24, 24, 31, 35, 38, 46, 51, 57, 57, 58, 76, 78, 89, 92, 95, 97, 99]</pre>
 
=={{header|Scala}}==
===Imperative version (Ugly, side effects)===
<lang Scala>object CombSort extends App {
val ia = Array(28, 44, 46, 24, 19, 2, 17, 11, 25, 4)
val ca = Array('X', 'B', 'E', 'A', 'Z', 'M', 'S', 'L', 'Y', 'C')
 
def sorted[E](input: Array[E])(implicit ord: Ordering[E]): Array[E] = {
import ord._
var gap = input.length
var swapped = true
while (gap > 1 || swapped) {
if (gap > 1) gap = (gap / 1.3).toInt
swapped = false
for (i <- 0 until input.length - gap)
if (input(i) >= input(i + gap)) {
val t = input(i)
input(i) = input(i + gap)
input(i + gap) = t
swapped = true
}
}
input
}
 
println(s"Unsorted : ${ia.mkString("[", ", ", "]")}")
println(s"Sorted : ${sorted(ia).mkString("[", ", ", "]")}\n")
 
println(s"Unsorted : ${ca.mkString("[", ", ", "]")}")
println(s"Sorted : ${sorted(ca).mkString("[", ", ", "]")}")
 
}</lang>
{{Out}}See it in running in your browser by [https://scalafiddle.io/sf/7ykMPZx/0 ScalaFiddle (JavaScript)] or by [https://scastie.scala-lang.org/Gp1ZcxnPQAKvToWFZLU7OA Scastie (JVM)].
=={{header|Sather}}==
<lang sather>class SORT{T < $IS_LT{T}} is
Anonymous user