[파일명: TestSort.scala]------------------------------------------------
object TestSort {
def quickSort(arr: Array[String], start: Int, end: Int) {
var i: Int = start
var k: Int = end
var pivot: String = ""
if (end - start >= 1) {
pivot = arr(start)
while (k > i) {
while (arr(i) <= pivot && i <= end && k > i) {
i += 1
}
while (arr(k) > pivot && k >= start && k >= i) {
k -= 1
}
if (k > i) {
swap(arr, i, k)
}
}
swap(arr, start, k)
quickSort(arr, start, k - 1)
quickSort(arr, k + 1, end)
}
}
def swap(arr: Array[String], x: Int, y: Int) {
var tmp: String = arr(x)
arr(x) = arr(y)
arr(y) = tmp
}
def printArray(arr: Array[String]) {
print("[")
for (i <- 0 to arr.length - 2) {
print(arr(i) + ", ")
}
println(arr(arr.length - 1) + "]")
}
def main(args: Array[String]) {
var arr: Array[String] = for (a <- args) yield a
quickSort(arr, 0, arr.length - 1)
printArray(arr)
}
}
------------------------------------------------
캄파일> scalac -d . testSort.scala
실행> scala testSort 하나 둘 셋 넷 다섯
[넷, 다섯, 둘, 셋, 하나]
'프로그래밍 > Scala' 카테고리의 다른 글
숫자 맞추기 게임 with Scala (0) | 2009.11.05 |
---|---|
스트링 배열에서 스트링 찾기(find) with Scala (0) | 2009.04.22 |
대화형 모드의 진법(radix) 변환 예제 with Scala (0) | 2009.03.09 |
황금비율(golden ratio) 구하기 with Scala (0) | 2009.03.09 |
현재 시각 알아내기 for Scala (0) | 2009.03.09 |