Sorting in Scala
Our example demonstrates sorting in Scala. We’ll look at sorting for built-in types first.
import scala.collection.mutable.ArrayBuffer
object Sorting {
def main(args: Array[String]): Unit = {
// Sorting functions work for any type that has an implicit Ordering.
// For a list of types with default Orderings, see scala.math.Ordering.
val strs = ArrayBuffer("c", "a", "b")
scala.util.Sorting.quickSort(strs)
println(s"Strings: ${strs.mkString("[", ", ", "]")}")
// An example of sorting integers.
val ints = ArrayBuffer(7, 2, 4)
scala.util.Sorting.quickSort(ints)
println(s"Ints: ${ints.mkString("[", ", ", "]")}")
// We can also check if a sequence is already in sorted order.
val s = ints.sliding(2).forall { case Seq(a, b) => a <= b }
println(s"Sorted: $s")
}
}To run the program, save it as Sorting.scala and use scala:
$ scala Sorting.scala
Strings: [a, b, c]
Ints: [2, 4, 7]
Sorted: trueIn this Scala example:
We use
ArrayBufferas a mutable sequence, which is similar to slices in other languages.The
scala.util.Sorting.quickSortmethod is used to sort the sequences in-place.To check if a sequence is sorted, we use the
slidingmethod to compare adjacent pairs.Scala’s string interpolation (
s"...") is used for formatting output strings.The
mkStringmethod is used to convert sequences to strings for printing.
Note that Scala provides powerful sorting capabilities through its collections library, including methods like sorted and sortWith for immutable collections, which weren’t showcased in this basic example.