一言付け加えますが、このコードは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 件のコメント:
コメントを投稿