QuickSort My version

Run Settings
LanguageScala
Language Version
Run Command
object Main extends App { def quickSort (array: Array[Int], left: Int = 0, right: Int): Array[Int] = { if (array.length < 2){ return array } else if (array.length == 2) { if(array(left) > array(right)){ val temp = array(left) array(left) = array(right) array(right) = temp } } val pivotPosition = sortOnPivot(array, left, right) val (leftAr,rightAr) = (array.slice(0, pivotPosition), array.slice(pivotPosition, array.length)) quickSort(leftAr, 0, leftAr.length-1) ++ quickSort(rightAr, 0, rightAr.length-1) } def sortOnPivot(array: Array[Int], left:Int, pivot: Int): Int = { var pivotPosition = pivot for (n <- left until array.length) { if (array(n) > array(pivot)) { //slice to left var temp = array(pivot-1) array(pivot-1) = array(pivot) array(pivot) = temp //exchange temp = array(n) pivotPosition = n array(n) = array(pivot) array(pivot) = temp } } pivotPosition } val l = Array(1,4,3,7,5,8,6,20,3,1,0,22) println(quickSort(l, 0, l.length-1).toList) }
Editor Settings
Theme
Key bindings
Full width
Lines