码迷,mamicode.com
首页 > 编程语言 > 详细

快速排序的python实现

时间:2018-07-30 21:33:42      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:value   turn   col   排序   接受   ase   base   它的   其他   

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实现

标签:value   turn   col   排序   接受   ase   base   它的   其他   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!