美文网首页Python学习内容整理
Python 数组快速排序的实现

Python 数组快速排序的实现

作者: Lorence | 来源:发表于2020-05-18 21:42 被阅读0次

    ''
    快速排序算法,采用分而治之的策略。它的基本思想是通过一趟排序将要排序的数据
    分割成独立的两部分,其中一部分的所有数据,都比另一部分的所有数据都要小。然后
    再按此方法,对这两部分的数据进行快速排序,整个排序的过程中递归进行。以此到整个数据变成有序。 下面是实现的代码:
    '''
    def quicksort(array):
    if len(array)<2:
    return array
    else:
    pivot=array[len(array)//2] #在数列中,选择一个元素作为基准,或者叫比较值
    array.remove(pivot) #在原数组中把比较值移除
    less,greater=[],[] #定义基准值左右两个列表
    for i in array:
    if i<=pivot: #小于基准值的放一侧
    less.append(i)
    else:
    greater.append(i) #大于基准值的放另一侧
    return quicksort(less)+[pivot]+quicksort(greater) #使用迭代进行比较

    print(quicksort([30,24,5,58,18,36,12,42,39]))

    输出为:
    [5, 12, 18, 24, 30, 36, 39, 42, 58]

    相关文章

      网友评论

        本文标题:Python 数组快速排序的实现

        本文链接:https://www.haomeiwen.com/subject/luxmohtx.html