This commit is contained in:
blueloveTH 2023-02-18 15:48:40 +08:00
parent 63a00d0faf
commit 798697e488
2 changed files with 26 additions and 42 deletions

View File

@ -2,27 +2,19 @@ import random
a = [random.randint(-100000, 100000) for i in range(100000)]
def __qsort(a: list, i: int, j: int):
if i>=j:
return
d1, d2 = i, j
mid = (i+j) // 2
a[mid], a[i] = a[i], a[mid]
u = a[i];
while i<j:
while i<j and a[j]>u:
j -= 1
if i<j:
a[i] = a[j]
i += 1
while i<j and a[i]<u:
i += 1
if i<j:
a[j] = a[i]
j -= 1
a[i] = u;
__qsort(a, d1, i-1)
__qsort(a, i+1, d2)
def __qsort(a: list, L: int, R: int):
if L >= R: return;
mid = a[(R+L)//2];
i, j = L, R
while i<=j:
while a[i]<mid: i+=1
while a[j]>mid: j-=1
if i<=j:
a[i], a[j] = a[j], a[i]
i+=1
j-=1
__qsort(a, L, j)
__qsort(a, i, R)
from dis import dis
# dis(__qsort)

View File

@ -116,27 +116,19 @@ tuple.__repr__ = lambda self: '(' + ', '.join([repr(i) for i in self]) + ')'
list.__json__ = lambda self: '[' + ', '.join([i.__json__() for i in self]) + ']'
tuple.__json__ = lambda self: '[' + ', '.join([i.__json__() for i in self]) + ']'
def __qsort(a: list, i: int, j: int):
if i>=j:
return
d1, d2 = i, j
mid = (i+j) // 2
a[mid], a[i] = a[i], a[mid]
u = a[i];
while i<j:
while i<j and a[j]>u:
j -= 1
if i<j:
a[i] = a[j]
i += 1
while i<j and a[i]<u:
i += 1
if i<j:
a[j] = a[i]
j -= 1
a[i] = u;
__qsort(a, d1, i-1)
__qsort(a, i+1, d2)
def __qsort(a: list, L: int, R: int):
if L >= R: return;
mid = a[(R+L)//2];
i, j = L, R
while i<=j:
while a[i]<mid: i+=1
while a[j]>mid: j-=1
if i<=j:
a[i], a[j] = a[j], a[i]
i+=1
j-=1
__qsort(a, L, j)
__qsort(a, i, R)
def __list4sort(self, reverse=False):
__qsort(self, 0, len(self)-1)