首页 > 编程语言 > 详细

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

时间:2014-04-16 13:56:01      阅读:597      评论:0      收藏:0      [点我收藏+]

     快排(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实现排序算法——快速排序

原文:http://chenmg.blog.51cto.com/3039876/1396061

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!