首页 > 编程语言 > 详细

快速排序的python实现

时间:2018-07-30 20:52:56      阅读:133      评论:0      收藏:0      [点我收藏+]
def quick_sort(array, left, right):
    if left < right:
        base_index = division(array, left, right)
        quick_sort(array, left, base_index - 1)  # 对小于基准值的再次进行分割
        quick_sort(array, base_index + 1, right)  # 对大于基准值的再次进行分割


def division(array, left, right):
    base_value = array[right]
    i = left
    for j in range(left, right):  # 遍历除最后一个元素的其他元素
        if array[j] <= base_value:  # 和基准值对比
            array[i], array[j] = array[j], array[i]  # 小于基准值,则替换到list前
            i += 1  # 替换过后,往后移一位,准备接受下次替换
    array[i], array[right] = array[right], array[i]  # 遍历完成后,将基准值放到所有小于它的值之后
    return i  # 返回基准值的index,用于分割列表


if __name__ == __main__:
    a = [random.randint(1, 1000) for i in range(50)]
    quick_sort(a, 0, len(a) - 1)
    print a

 

快速排序的python实现

原文:https://www.cnblogs.com/small-office/p/9392375.html

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