sort.py 581 B

123456789101112131415161718192021222324252627282930
  1. import random
  2. a = [random.randint(-100000, 100000) for i in range(100000)]
  3. def __qsort(a: list, i: int, j: int):
  4. if i>=j:
  5. return
  6. d1, d2 = i, j
  7. mid = (i+j) // 2
  8. a[mid], a[i] = a[i], a[mid]
  9. u = a[i];
  10. while i<j:
  11. while i<j and a[j]>u:
  12. j -= 1
  13. if i<j:
  14. a[i] = a[j]
  15. i += 1
  16. while i<j and a[i]<u:
  17. i += 1
  18. if i<j:
  19. a[j] = a[i]
  20. j -= 1
  21. a[i] = u;
  22. __qsort(a, d1, i-1)
  23. __qsort(a, i+1, d2)
  24. from dis import dis
  25. # dis(__qsort)
  26. __qsort(a, 0, len(a)-1)