diff --git a/Intermediate/quick-sort.py b/Intermediate/quick-sort.py new file mode 100644 index 00000000..aa8e30af --- /dev/null +++ b/Intermediate/quick-sort.py @@ -0,0 +1,41 @@ +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 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 = [] +n = int(input("Length of array")) +for i in range (n): + arr.append(int(input("Enter elements"))) + +quickSort(arr,0,n-1) + +print ("Sorted array is:") +for i in range(n): + print ("%d" %arr[i]),