test.py 755 B

123456789101112131415161718192021222324252627
  1. # _*_coding:utf-8_*_
  2. import random
  3. def partition(li, left, right):
  4. tmp = li[left]
  5. while left < right:
  6. while left < right and li[right] >= tmp: # 从右边找比 tmp 小的数
  7. right -= 1 # 往左走一步
  8. li[left] = li[right] # 把右边的值写到左边空位
  9. while left < right and li[left] <= tmp:
  10. left += 1
  11. li[right] = li[left] # 把左边的值写到右边空位
  12. li[left] = tmp # 把 tmp 归位
  13. return left
  14. def quick_sort(li, left, right):
  15. if left < right:
  16. mid = partition(li, left, right)
  17. quick_sort(li, left, mid-1)
  18. quick_sort(li, mid+1, right)
  19. li = list(range(10000))
  20. random.shuffle(li)
  21. print(li)
  22. quick_sort(li, 0, len(li) - 1)
  23. # print(li)