From 798697e488532713e3f68e99afae281d9eeb3617 Mon Sep 17 00:00:00 2001 From: blueloveTH Date: Sat, 18 Feb 2023 15:48:40 +0800 Subject: [PATCH] up --- benchmarks/sort.py | 34 +++++++++++++--------------------- src/builtins.h | 34 +++++++++++++--------------------- 2 files changed, 26 insertions(+), 42 deletions(-) diff --git a/benchmarks/sort.py b/benchmarks/sort.py index 13fe354c..0a993968 100644 --- a/benchmarks/sort.py +++ b/benchmarks/sort.py @@ -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 iu: - j -= 1 - if i= R: return; + mid = a[(R+L)//2]; + i, j = L, R + while i<=j: + while a[i]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) diff --git a/src/builtins.h b/src/builtins.h index 01115f9d..0dde0346 100644 --- a/src/builtins.h +++ b/src/builtins.h @@ -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 iu: - j -= 1 - if i= R: return; + mid = a[(R+L)//2]; + i, j = L, R + while i<=j: + while a[i]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)