Sorting algorithms/Bubble sort: Difference between revisions

Added Scala
No edit summary
(Added Scala)
Line 1,227:
p ary
# => [3, 4, 6, 6, 8, 23, 78]</lang>
 
=={{header|Scala}}==
This slightly more complex version of Bubble Sort avoids errors
with indices.
 
<lang scala>def bubbleSort[T](arr: Array[T])(implicit o: Ordering[T]) {
import o._
val consecutiveIndices = (arr.indices, arr.indices drop 1).zipped
var hasChanged = true
do {
hasChanged = false
consecutiveIndices foreach { (i1, i2) =>
if (arr(i1) > arr(i2)) {
hasChanged = true
val tmp = arr(i1)
arr(i1) = arr(i2)
arr(i2) = tmp
}
}
} while(hasChanged)
}</lang>
 
=={{header|Scheme}}==
Anonymous user