用Python实现排序算法——快速排序

     快排(QuickSort)是很实用的算法,好用就好用在一个“快”字,而且它采用的是分治的策略,分治顾名思义就是“分而治之”,把一个大问题分成很多小问题逐个去解决,这个思想在处理大数据时相当有效,更详细通俗的原理解析请看这里

直接贴代码:

def partition(sort_list, left, right):
    key = sort_list[left]
    while left < right :
        while left < right and sort_list[right] >= key :
            right -= 1
        if left < right and sort_list[right] < key:
            sort_list[left] = sort_list[right]
            left += 1
        while left < right and sort_list[left] >= key:
            left += 1
        if left < right and sort_list[left] < key:
            sort_list[right] = sort_list[left]
            right -= 1
    sort_list[left] = key
    return left
def quickSort(sort_list, left, right):
    if left < right :
        i = partition(sort_list, left, right)
        quickSort(sort_list, left, right-1)
        quickSort(sort_list, left+1, right)
    return sort_list

      这段代码可以整合成一个函数,大家可以自行优化。代码以第一个元素为初始基准,采用递归的方法实现。值得一提的是,虽然递归是效率相对较低的方法,但是可以让代码结构清晰易懂,而且分治策略的算法大部分都用递归实现。

本文出自 “绵之学习笔记” 博客,请务必保留此出处http://chenmg.blog.51cto.com/3039876/1396061

用Python实现排序算法——快速排序,布布扣,bubuko.com

用Python实现排序算法——快速排序

上一篇:Java获取系统属性


下一篇:2014年4月15日星期二java学习历程俄罗斯方块tetris的实现思考