分享一下代码:
---摘自 <python-data-struct>
def quickSort(alist):
quickSortHelper(alist, 0, len(alist) - 1)
def quickSortHelper(alist, first, last):
if first < last:
splitpoint = partition(alist, first, last)
quickSortHelper(alist, first, splitpoint - 1)
quickSortHelper(alist, splitpoint + 1, last)
def partition(alist, first, last):
pivotvalue = alist[first]
leftmark = first + 1
rightmark = last
done = False
while not done:
while leftmark <= rightmark and alist[leftmark] <= pivotvalue:
leftmark = leftmark + 1
while alist[rightmark] >= pivotvalue and rightmark >= leftmark:
rightmark = rightmark - 1
if rightmark < leftmark:
done = True
else:
temp = alist[leftmark]
alist[leftmark] = alist[rightmark]
alist[rightmark] = temp
temp = alist[first]
alist[first] = alist[rightmark]
alist[rightmark] = temp
return rightmark
alist = [55,66,33,22,66,77,32,11]
quickSort(alist)
print(alist)
本文详细介绍了一个经典的排序算法——快速排序。通过递归的方式,选择一个基准元素,将数组分为两部分,一部分的所有元素都比另一部分小,然后分别对这两部分进行排序。文章提供了完整的Python实现代码,并给出一个示例数组的排序过程。
1098

被折叠的 条评论
为什么被折叠?



