python写算法之快速排序

原理用的还是数据结构里面快速排序的原理,每一趟排序比较一个数字,从尾部查起将比它小的移动到要比较的数字之前,然后从刚刚交换小的数字的那个位置之后找比要查找数字大的,换到原来那个比它小的 数字的位置。最后将要查找的这个数字插入到适当的位置。这样一来,以这个数字为基准,左边的都比他小,右边的都比他大,然后再分别对这两个分序列进行操作即可。C语言写这个感觉还这的没有python简单


def qsort(L):
    if len(L)<=0: return L
    return qsort([x for x in L if x<L[0]]) + [x for x in L if x==L[0]] + qsort([x for x in L if x>L[0]])

L=[5,4,10,2,-10]
L=qsort(L)
print L



你可能感兴趣的:(python写算法之快速排序)