美文网首页
LeetCode之Sort an Array(Kotlin)

LeetCode之Sort an Array(Kotlin)

作者: 糕冷羊 | 来源:发表于2019-10-10 16:42 被阅读0次

    问题:



    方法:
    这题用了快速排序,当然堆排序或者归并排序都可以,本质上都是利用了二分的思想。

    具体实现:

    class SortAnArray {
        fun sortArray(nums: IntArray): IntArray {
            quickSort(nums, 0, nums.lastIndex)
            return nums
        }
    
        private fun quickSort(nums: IntArray, start: Int, end: Int) {
            if (start > end) {
                return
            }
            var head = start
            var tail = end
            var temp: Int
            while (head < tail) {
                while (head < tail && nums[tail] >= nums[start]) {
                    tail--
                }
                while (head < tail && nums[head] <= nums[start]) {
                    head++
                }
                if (head < tail) {
                    temp = nums[head]
                    nums[head] = nums[tail]
                    nums[tail] = temp
                }
            }
            temp = nums[head]
            nums[head] = nums[start]
            nums[start] = temp
            quickSort(nums, start, head - 1)
            quickSort(nums, head + 1, end)
        }
    }
    
    fun main(args: Array<String>) {
        val input = intArrayOf(5, 1, 1, 2, 0, 0)
        val sortAnArray = SortAnArray()
        CommonUtils.printArray(sortAnArray.sortArray(input).toTypedArray())
    }
    

    有问题随时沟通

    具体代码实现可以参考Github

    相关文章

      网友评论

          本文标题:LeetCode之Sort an Array(Kotlin)

          本文链接:https://www.haomeiwen.com/subject/rojapctx.html