Created
April 15, 2020 20:15
-
-
Save ShamsAnsari/2cf342c913a5f35f33ed799d6c82e244 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#This function takes last element as pivot, places | |
# the pivot element at its correct position in sorted | |
# array, and places all smaller (smaller than pivot) | |
# to left of pivot and all greater elements to right | |
# of pivot | |
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 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) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment