一言付け加えますが、このコードはscalaの特徴である関数型をフル活用
したコードになっておりませんので、関数型をフル活用したコードについては
ネットで検索すればいくらでも出てくるのでそちらを参照してください。
import scala.util._
def sort(A:Array[Int], left:Int, right:Int) : Int= {
if(left<right){
val p:Int = partition(A, left, right)
sort(A, left, p-1)
sort(A, p+1, right)
}
1
}
def partition(A:Array[Int], left:Int, right:Int) : Int = {
val p = left
var tmp = A(p)
A(p) = A(right)
A(right) = tmp
var store = left
for(i <- left to right) {
if(A(i) < A(right)) {
tmp = A(i)
A(i) = A(store)
A(store) = tmp
store+=1
}
}
tmp = A(store)
A(store) = A(right)
A(right) = tmp
store
}
def randomArray(no:Int):Array[Int] = {
val r = new Random
var A = new Array[Int](no)
for(i <- 0 to A.length-1) A(i) = r.nextInt(no)
A
}
val A = randomArray(20)
sort(A, 0 ,A.length - 1)
for(i <- 0 to A.length - 1) {
println(A(i))
}
0 件のコメント:
コメントを投稿