-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathquickSort.py
More file actions
26 lines (22 loc) · 819 Bytes
/
quickSort.py
File metadata and controls
26 lines (22 loc) · 819 Bytes
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
def quickSort(arr, left, right):
if left >= right:
return arr
key = arr[left]
left_pivot = left
right_pivot = right
while left_pivot < right_pivot:
while arr[left_pivot] <= key and left_pivot < right:
left_pivot = left_pivot + 1
while arr[right_pivot] >= key and right_pivot > left:
right_pivot = right_pivot - 1
if left_pivot >= right_pivot:
# swap
arr[left], arr[right_pivot] = arr[right_pivot], arr[left]
quickSort(arr, left, right_pivot - 1)
quickSort(arr, right_pivot + 1, right)
else:
# swap
arr[left_pivot], arr[right_pivot] = arr[right_pivot], arr[left_pivot]
return arr
data = [20, 9, 100, 0, 201, 3, 11]
print(quickSort(data, 0, len(data) - 1))