Skip to content

Commit

Permalink
Merge pull request #2 from nitinajaydixit/nitinajaydixit-patch-2
Browse files Browse the repository at this point in the history
Created QuickSort.py
  • Loading branch information
nitin-dixit authored Oct 10, 2021
2 parents 4b1da9b + 0ee3aa2 commit b8dcf20
Showing 1 changed file with 38 additions and 0 deletions.
38 changes: 38 additions & 0 deletions 33. Python Programs/QuickSort.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@

def partition(arr, low, high):
i = (low-1) # index of smaller element
pivot = arr[high] # pivot

for j in range(low, high):

# If current element is smaller than or
# equal to pivot
if arr[j] <= pivot:

# increment index of smaller element
i = i+1
arr[i], arr[j] = arr[j], arr[i]

arr[i+1], arr[high] = arr[high], arr[i+1]
return (i+1)

def quickSort(arr, low, high):
if len(arr) == 1:
return arr
if low < high:
# pi is partitioning index, arr[p] is now at right place
pi = partition(arr, low, high)
# Separately sort elements before
# partition and after partition
quickSort(arr, low, pi-1)
quickSort(arr, pi+1, high)


arr = [10, 7, 8, 9, 1, 5]
n = len(arr)
quickSort(arr, 0, n-1)
print("Sorted array is:")
for i in range(n):
print("%d" % arr[i]),


0 comments on commit b8dcf20

Please sign in to comment.