scvmm 发表于 2017-4-30 12:09:07

python 快速排序

def qsort(L):
if L == []: return []
return qsort( if x <= L]) + L + qsort( if x > L])
      
#以第一个元素为基准 把小于他的元素组成一个数组 递归排序大于他的元素组成一个数组 递归排序
#此处没有像其他的语言实现,更换原有数组的位置而是生成新的小数组(应该是每个元素一个数组)
#最后组成结果数组

  magic
  下面是常规思路的快排

def quicksort(data, low = 0, high = None):
if high == None:
high = len(data) - 1
if low < high:
s, i, j = data, low, high
while i < j:
while i < j and data >= s:
j = j - 1
if i < j:
data = data
i = i + 1
while i < j and data <= s:
i = i + 1
if i < j:
data = data
j = j - 1
data = s
quicksort(data, low, i - 1)
quicksort(data, i + 1, high)
页: [1]
查看完整版本: python 快速排序