//快速排序
def quickSort(array: Array[Int], low: Int, high: Int): Array[Int] = {
var key = array(low)
var i = low
var j = high
while (i < j) {
//右到左遍历
while (i < j && array(j) >= key) {
j -= 1
}
if(i<j) {
array(i) = array(j)
i += 1
}
//左到右遍历
while (i < j && array(i) <= key) {
i += 1
}
if(i<j) {
array(j) = array(i)
j -= 1
}
//每一趟结束时i==j
array(i) = key
}
//每一趟结束遍历数组
//array.foreach(x => print(x + " "))
println()
//递归调用完成排序
if (low < i - 1) quickSort(array, low, i - 1)
if (j + 1 < high) quickSort(array, j + 1, high)
return array
}
val array1 = Array(2,3,9,6,4,7,1,5,8)
quickSort(array1,0,array1.length-1).foreach(x=>print(x+" "))
结果如下:
1 2 3 4 5 6 7 8 9
Scala实现快速排序
最新推荐文章于 2020-11-29 13:39:57 发布