Quicksort is a type of sorting algorithm, quicksort algorithm is based on divide and conquers approach, In this article, i will explain quicksort algorithm with example.
ALGORITHM:
Quicksort(a[l..r])
//Sorts a subarray by quicksort
//Input: Subarray A[0….n-1], defined by its left and right
// indices l and r
//Output: Subarray A[l..r] sorted order
if l < r
S ←Partition(A[l..r]) //s is a split position
Quicksort(A[l..s − 1])
Quicksort(A[s + 1..r])
Solving Quicksort problem There are 4 condition:
1. A [P] > i
2. A [P] < j
3. if (a<j)
Swap A[i] and A[j]
Else
4. Swap A[j] and A[p]
Example:
5 2 1 6
Pivot element is = 5
I is = 5
J is = 6
P is a Pivot element
i position is 0
j position is n-1
First check the first condition [A [i] > p] i++
Initially I position is zero
For ex :
[A [5] > 5] “Condition False” i++
[A [5] > 2] “Condition False” i++
[A [5] > 1] “Condition False” i++
[A [5] > 6] “True” stop incrementing
Second condition [A [p] < j] j—
Initially j position is n-1
[A [6] < 5] “False” j—
[A [1] < 5] “true” stop decrementing
Check “if(i<j)” Swap [A [i] and A [j] ]
(6 < 1) “False”
Else
Swap [A [j] and A[p]]
Now it becomes
1 2 5 6
The Same rule applied for all the problem of the quicksort. I hope you should understand correctly if you face any problem the comment in the comment section
No comments:
Post a Comment