快速排序是一种非常高效的排序算法,它采用分而治之的思想,把大的拆分成小的,小的拆分成更小的。其原理是:对于一组给定的记录,通过一趟排序后,将原有序列分为两个部分,其中前部分的所有记录均比后部分的所有记录要小,然后再依次对前后两部分进行快速排序,递归该过程, 直到序列中的所有记录均有序为止。
def quick_sort(lists, left, right):
# 快速排序
if left >= right:
return lists
key = lists[left]
low = left
high = right
while left < right:
while left < right and lists[right] >= key:
right -= 1
lists[left] = lists[right]
while 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("排序前的序列为:")
for i in lists:
print(i, end=" ")
print("\n")
for i in quick_sort(lists, 0, len(lists) - 1):
print(i, end=" ")