Skip to content

Commit f39cdef

Browse files
committed
Quick- sort added
1 parent d28dbd5 commit f39cdef

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

sorts/QuickSort_MiddlePivot.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Author : Junth Basnet
2+
3+
"""
4+
Implementation of Quick Sort Algorithm with middle element as pivot element
5+
Time Complexity : O(nlogn) - O(n^2)
6+
"""
7+
8+
def QuickSortFirst(array):
9+
return QuickSort(array, 0, len(array) - 1)
10+
11+
def QuickSort(array, left, right):
12+
if left >= right:
13+
return array
14+
pivot = array[(left + right) // 2]
15+
index = Partition(array, left, right, pivot)
16+
QuickSort(array, left, index - 1)
17+
QuickSort(array, index, right)
18+
return array
19+
20+
def Partition(array, left, right, pivot):
21+
while left <= right:
22+
while array[left] < pivot:
23+
left += 1
24+
while array[right] > pivot:
25+
right -= 1
26+
if left <= right:
27+
array[left], array[right] = array[right], array[left]
28+
left += 1
29+
right -= 1
30+
return left
31+
32+
array = [1, 6, 4, 10, 7, 30, 25]
33+
print(array)
34+
sorted_array = QuickSortFirst(array)
35+
print(sorted_array)

0 commit comments

Comments
 (0)