题目:如何进行快速排序?
分析:首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后把所有比它小的数都放到它前面,大后方面。
code:
def quick_sort(lists, left, right):
if left > right:
return lists
key = lists[left]
while left < right:
if left < right and lists[right] >= key:
right -= 1
lists[left] = lists[right]
if left < right and lists[left] <= key:
left += 1
lists[right] = lists[left]
lists[right] = key
quick_sort(lists, low, left - 1)
quick_sort(lists, left + 1, high)
return lists
if __name__ == "__main__":
lists = [3, 4, 2, 8, 9, 5, 1]
print(quick_sort(lists, 0, len(lists) - 1))