zoukankan      html  css  js  c++  java
  • python排序算法的实现-快速排序

    1、 算法描述:

    1.先从数列中取出一个数作为基准数。

    2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。

    3.再对左右区间重复第二步,直到各区间只有一个数。

    2、python代码

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    def sub_sort(array,low,high):
        key = array[low]
        while low < high:
            while low < high and array[high] >= key:
                high -= 1
            while low < high and array[high] < key:
                array[low] = array[high]
                low += 1
                array[high] = array[low]
        array[low] = key
        return low
    
    
    def quick_sort(array,low,high):
         if low < high:
            key_index = sub_sort(array,low,high)
            quick_sort(array,low,key_index)
            quick_sort(array,key_index+1,high)
    
    
    if __name__ == '__main__':
        array = [8,10,9,6,4,16,5,13,26,18,2,45,34,23,1,7,3]
        print array
        quick_sort(array,0,len(array)-1)
        print array

    结果:

    [8, 10, 9, 6, 4, 16, 5, 13, 26, 18, 2, 45, 34, 23, 1, 7, 3]
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 16, 18, 23, 26, 34, 45]

  • 相关阅读:
    完美世界笔试(动态规划,背包问题)
    腾讯笔试3
    腾讯笔试2
    腾讯笔试1
    阿里笔试1
    Merge Sorted Array
    Partition List
    Reverse Linked List II
    Remove Duplicates from Sorted List II
    白菜刷LeetCode记-704. Binary Search
  • 原文地址:https://www.cnblogs.com/yupeng/p/3418253.html
Copyright © 2011-2022 走看看