Python:快速排序算法

来源:互联网 发布:app理财软件 编辑:程序博客网 时间:2024/06/11 14:31


快速排序:空间复杂度为O(log n),时间复杂度为[O(n log n), O(n^2)],算法不稳定,不具有适应性

1、从序列中取出一个数作为基准数

2、分区,比基准数大的放基准数右边,小的放左边

3、递归,重复第二步操作,直到基准数的左边和右边分别只剩一个数

算法的稳定性是指:对于待排序的序列中,相同项的原来次序不能被改变

算法的适应性是指:算法因为原序列有序而更高效

def quick_sort(lst, l, r):    if l > r:        return    i, j = l, r    pivot = lst[i]    while i < j:        while i < j and lst[j] >= pivot:            j -= 1        if i < j:            lst[i] = lst[j]            i += 1        while i < j and lst[i] <= pivot:            i += 1        if i < j:            lst[j] = lst[i]            j -= 1    lst[i] = pivot    quick_sort(lst, l, i-1)    quick_sort(lst, i+1, r)    print lst


原创粉丝点击