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
  • 相关阅读:
    nth_element 使用方法
    Codeforces-1326E Bombs
    GDB下调试查看数组部分内容
    0930,主外键设置
    0928,数据库
    0924,函数返回多个值
    0921,函数 枚举
    0920,结构体
    0918,练习题
    0916,双色球练习题
  • 原文地址:https://www.cnblogs.com/bozhou/p/6962885.html
Copyright © 2011-2022 走看看