sort.py 440 B

12345678910111213141516171819202122
  1. import random
  2. a = [random.randint(-100000, 100000) for i in range(100000)]
  3. def __qsort(a: list, L: int, R: int):
  4. if L >= R: return;
  5. mid = a[(R+L)//2];
  6. i, j = L, R
  7. while i<=j:
  8. while a[i]<mid: i+=1
  9. while a[j]>mid: j-=1
  10. if i<=j:
  11. a[i], a[j] = a[j], a[i]
  12. i+=1
  13. j-=1
  14. __qsort(a, L, j)
  15. __qsort(a, i, R)
  16. from dis import dis
  17. # dis(__qsort)
  18. __qsort(a, 0, len(a)-1)