[파일명:  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 하나 둘 셋 넷 다섯
[넷, 다섯, 둘, 셋, 하나]


 

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by Scripter
,