From 8e7f2ccb3c56ab54f0d51fa90a2241756e729d4f Mon Sep 17 00:00:00 2001 From: Dipen Luitel <114840370+dipen40@users.noreply.github.com> Date: Wed, 19 Oct 2022 08:22:35 +0545 Subject: [PATCH] Create quickSort.py --- Python/quickSort.py | 54 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 Python/quickSort.py diff --git a/Python/quickSort.py b/Python/quickSort.py new file mode 100644 index 0000000..cef8215 --- /dev/null +++ b/Python/quickSort.py @@ -0,0 +1,54 @@ +# Quick sort in Python + +# function to find the partition position +def partition(array, low, high): + + # choose the rightmost element as pivot + pivot = array[high] + + # pointer for greater element + i = low - 1 + + # traverse through all elements + # compare each element with pivot + for j in range(low, high): + if array[j] <= pivot: + # if element smaller than pivot is found + # swap it with the greater element pointed by i + i = i + 1 + + # swapping element at i with element at j + (array[i], array[j]) = (array[j], array[i]) + + # swap the pivot element with the greater element specified by i + (array[i + 1], array[high]) = (array[high], array[i + 1]) + + # return the position from where partition is done + return i + 1 + +# function to perform quicksort +def quickSort(array, low, high): + if low < high: + + # find pivot element such that + # element smaller than pivot are on the left + # element greater than pivot are on the right + pi = partition(array, low, high) + + # recursive call on the left of pivot + quickSort(array, low, pi - 1) + + # recursive call on the right of pivot + quickSort(array, pi + 1, high) + + +data = [8, 7, 2, 1, 0, 9, 6] +print("Unsorted Array") +print(data) + +size = len(data) + +quickSort(data, 0, size - 1) + +print('Sorted Array in Ascending Order:') +print(data)