forked from greyireland/algorithm-pattern
- Notifications
You must be signed in to change notification settings - Fork 214
/
Copy pathquicksort.py
32 lines (23 loc) · 790 Bytes
/
quicksort.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
importrandom
defpartition(nums, left, right):
ifleft>=right:
return
pivot_idx=random.randint(left, right)
pivot=nums[pivot_idx]
nums[right], nums[pivot_idx] =nums[pivot_idx], nums[right]
partition_idx=left
foriinrange(left, right):
ifnums[i] <pivot:
nums[partition_idx], nums[i] =nums[i], nums[partition_idx]
partition_idx+=1
nums[right], nums[partition_idx] =nums[partition_idx], nums[right]
partition(nums, partition_idx+1, right)
partition(nums, left, partition_idx-1)
return
defquicksort(A):
partition(A, 0, len(A) -1)
returnA
if__name__=='__main__':
a= [7, 6, 8, 5, 2, 1, 3, 4, 0, 9, 10]
print(a)
print(quicksort(a))