Skip to content

Commit

Permalink
quicksort.py
Browse files Browse the repository at this point in the history
  • Loading branch information
b19149 authored Oct 24, 2020
1 parent 66558da commit 6093bb4
Showing 1 changed file with 47 additions and 0 deletions.
47 changes: 47 additions & 0 deletions Python/quicksort.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
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)

# The main function that implements QuickSort
# arr[] --> Array to be sorted,
# low --> Starting index,
# high --> Ending index

# Function to do Quick sort


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)


# Driver code to test above
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 6093bb4

Please sign in to comment.