zoukankan      html  css  js  c++  java
  • LintCode Python 简单级题目 464.整数排序 II

    题目描述:

    给一组整数,按照升序排序。使用归并排序,快速排序,堆排序或者任何其他 O(n log n) 的排序算法。

    样例

    给出 [3, 2, 1, 4, 5], 排序后的结果为 [1, 2, 3, 4, 5]

    题目分析:

    给一组整数,按照升序排序。使用归并排序,快速排序,堆排序或者任何其他 O(n log n) 的排序算法。

    快速排序,递归将大于key值和小于key值的分为两部分,直到每个子数组长度为1,不可再分。

     

    源码:

    class Solution:
        # @param {int[]} A an integer array
        # @return nothing
        def sortIntegers2(self, A):
            # Write your code here
            if A is None: return A
            n = len(A)
            if n == 1 or n == 0: return A
            return self.quickSort(A,0,n-1)
            
        def quickSort(self,List,left,right):
            if left >= right:
                return List
            key = List[left]
            low = left
            high = right
            while left < right:
                while left < right and List[right] >= key:
                    right -= 1
                List[left],List[right] = List[right],List[left]
                while left < right and List[left] <= key:
                    left += 1
                List[right],List[left] = List[left],List[right]
            self.quickSort(List,low,left-1)
            self.quickSort(List,left+1,high)
            return List
  • 相关阅读:
    学习进度总结表
    关于软件工程的问题
    自我介绍
    web安全
    spring profile
    spring 装配
    python Descriptor (描述符)
    python string intern
    Java 对象内存占用
    java jdb命令详解
  • 原文地址:https://www.cnblogs.com/bozhou/p/6962885.html
Copyright © 2011-2022 走看看