版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/EnterPine/article/details/88885419
def qsort(a:Array[Int],start:Int,end:Int): Unit ={
if(start >= end){return}
var i = start
var j = end
val key = a(start)
while(i!=j) {
var out = 0
while (out == 0) {
if (a(j) < key) {
a(i) = a(j)
out = 1
} else if (j == i) {
out = 1
}
else {
j = j - 1
}
}
out = 0
while (out == 0) {
if (a(i) > key) {
a(j) = a(i)
out = 1
} else if (i == j) {
out = 1
} else {
i = i + 1
}
}
}
a(i)=key
qsort(a,start,i-1)
qsort(a,i+1,end)
}
def main(args:Array[String]): Unit ={
val a=Array(6,3,9,2,0,10,2,32,4)
qsort(a,0,a.length-1)
for(i <- a){
print(i+" ")
}
println("")
}