forked from psounis/python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexercise12.py
More file actions
27 lines (20 loc) · 806 Bytes
/
Copy pathexercise12.py
File metadata and controls
27 lines (20 loc) · 806 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
27
from random import randrange
def quick_sort(array):
def partition(array, start, finish):
pivot = array[start]
less = [elem for elem in array[start+1:finish+1] if elem < pivot]
greaterequal = [elem for elem in array[start+1:finish + 1] if elem >= pivot]
new_array = less + [pivot] + greaterequal
for i in range(start, finish+1):
array[i]=new_array.pop(0)
return start + len(less)
def quick_sort_rec(array, start, finish):
if start < finish:
pos = partition(array,start,finish)
quick_sort_rec(array,start,pos-1)
quick_sort_rec(array,pos+1,finish)
quick_sort_rec(array,0,len(array)-1)
ar = [randrange(100) for _ in range(20)]
print(ar)
quick_sort(ar)
print(ar)