DATA STRUCTURE
Dr.M.UMADEVI
ASSISTANT PROFESSOR
DEPARTMENT OF CS
SACWC, CUMBUM
Quick Sort
What is Quick Sort ??
 Quick Sort is the most widely used of all the other sorting algorithms
because they are faster and consume less memory.
It is superior to (bubble sort) and (insertion sort) and (selection sort)
speed and distinct from (merge sort) speed and available memory.
What is Quick Sort ??
Division here is to divide the list into two smaller and larger
where there is a so-called (pivot) and it is determined smaller
or larger is not required to be a number of elements in both
sections of equal or arranged in ascending or descending
order.
 This algorithm is the order of the array at a rate of ( n*log n), where n is
the step number of the elements of the array ..
What is Quick Sort ??
p
numbers less
than p
numbers greater than or
equal to p
p
Quick Sort
41 62 3513 28579684 79
Quick Sort
41 62 3513 28579684 79
Pivot = 41
Quick Sort
41 62 3513 28579684 79
Pivot = 41
i
Quick Sort
41 62 3513 28579684 79
Pivot = 41
i j
Quick Sort
41 62 3513 28579684 79
Pivot = 41
i j
41>79 ??
Quick Sort
41 62 3513 28579684 79
Pivot = 41
i j
41>79 ??
False
Quick Sort
41 62 3513 28579684
Pivot = 41
i j
j--
79
Quick Sort
41 62 3513 28579684
Pivot = 41
i j
79
41>28 ??
Quick Sort
41 62 3513 28579684
Pivot = 41
i j
79
41>28 ??
True
Quick Sort
41 62 3513 28579684
Pivot = 41
i j
79
Quick Sort
4162 351328 579684
Pivot = 41
i j
79
Pivot = j
Quick Sort
4162 351328 579684
Pivot = 41
i j
79
i++
Quick Sort
4162 351328 579684
Pivot = 41
i j
79
62>41 ??
Quick Sort
4162 351328 579684
Pivot = 41
i j
79
62>41 ??
True
Quick Sort
4162 351328 579684
Pivot = 41
i j
79
Quick Sort
41 351328 579684
Pivot = 41
i j
79
Pivot = i
62
Quick Sort
41 351328 579684
Pivot = 41
i j
7962
j--
Quick Sort
41 351328 579684
Pivot = 41
i j
7962
41>57 ??
Quick Sort
41 351328 579684
Pivot = 41
i j
7962
41>57 ??
False
Quick Sort
41 351328 579684
Pivot = 41
i j
7962
j--
Quick Sort
41 351328 579684
Pivot = 41
i j
7962
Quick Sort
41 351328 579684
Pivot = 41
i j
7962
41>96 ??
Quick Sort
41 351328 579684
Pivot = 41
i j
7962
41>96 ??
False
Quick Sort
41 351328 579684
Pivot = 41
i j
7962
j--
Quick Sort
41 351328 579684
Pivot = 41
i j
7962
Quick Sort
41 351328 579684
Pivot = 41
i j
7962
41>35 ??
Quick Sort
41 351328 579684
Pivot = 41
i j
7962
41>35 ??
True
Quick Sort
41 351328 579684
Pivot = 41
i j
7962
Quick Sort
35 1328 579684
Pivot = 41
i j
796241
Pivot = j
Quick Sort
35 1328 579684
Pivot = 41
i j
796241
i++
Quick Sort
35 1328 579684
Pivot = 41
i j
796241
13>41 ??
Quick Sort
35 1328 579684
Pivot = 41
i j
796241
13>41 ??
False
Quick Sort
35 1328 579684
Pivot = 41
i j
796241
i++
Quick Sort
35 1328 579684
Pivot = 41
i j
796241
84>41 ??
Quick Sort
35 1328 579684
Pivot = 41
i j
796241
Quick Sort
35 1328 5796
Pivot = 41
i j
796241 84
Quick Sort
35 1328 5796
Pivot = 41
i j
796241 84
j++
Quick Sort
35 1328 5796
Pivot = 41
i j
796241 84
i=j
Quick Sort
35 1328 5796
Pivot = 41
796241 84
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8]
Quick Sort
35 1328 5796
Pivot = 41
796241 84
a[0] a[1] a[2]
Quick Sort
35 1328 5796
Pivot = 41
796241 84
a[0] a[1] a[2] a[0] a[1] a[2] a[3] a[4]
Quick Sort
35 1328 5796 796241 84
a[0] a[1] a[2] a[0] a[0] a[1] a[2] a[3] a[4]
numbers less than p numbers greater than or equal to p
Quick Sort
35 1328
5796 796241 84
Now we sort numbers less than p
Quick Sort
35 1328
5796 796241 84
Pivot = 28
Quick Sort
5796 796241 84
Pivot = 28
i
35 1328
Quick Sort
35 1328
5796 796241 84Pivot = 28
i j
Quick Sort
35 1328
5796 796241 84Pivot = 28
i j
28>13 ??
Quick Sort
35 1328
5796 796241 84Pivot = 28
i j
28>13 ??
True
Quick Sort
35 1328
5796 796241 84Pivot = 28
i j
Quick Sort
3513
5796 796241 84Pivot = 28
i j
28
Pivot = j
Quick Sort
3513
5796 796241 84Pivot = 28
i j
28
i++
Quick Sort
3513
5796 796241 84Pivot = 28
i j
28
35>28 ??
True
Quick Sort
3513
5796 796241 84Pivot = 28
i j
28
Quick Sort
13
5796 796241 84Pivot = 28
i j
28 35
Quick Sort
13
5796 796241 84
28 35
a[0] a[1] a[2]
Quick Sort
13
5796 7962
41
84
28 35
Now we sort numbers greater than or equal to p
Quick Sort
13
5796 7962
41
84
28 35
a[0] a[1] a[2] a[3] a[4]
Quick Sort
13
5796 7962
41
84
28 35
Pivot = 84
Quick Sort
13
5796 7962
41
84
28 35
i=84 j=79
i j
Quick Sort
13
5796 7962
41
84
28 35
i j
84>79 ??
Quick Sort
13
5796 7962
41
84
28 35
i j
84>79 ??
True
Quick Sort
13
5796 7962
41
84
28 35
i j
Quick Sort
13
579679 62
41
84
28 35
i j
Quick Sort
13
579679 62
41
84
28 35
i j
Quick Sort
13
579679 62
41
84
28 35
i j
i=96
Quick Sort
13
579679 62
41
84
28 35
i j
96>84 ??
Quick Sort
13
579679 62
41
84
28 35
i j
96>84 ??
True
Quick Sort
13
579679 62
41
84
28 35
i j
Quick Sort
13
5779 62
41
84
28 35
i j
96
Quick Sort
13
5779 62
41
84
28 35
i j
96
j--
Quick Sort
13
5779 62
41
84
28 35
i j
96
84>62 ??
Quick Sort
13
5779 62
41
84
28 35
i j
96
84>62 ??
True
Quick Sort
13
5779 62
41
84
28 35
i j
96
Quick Sort
13
5779 62
4128 35
i j
9684
Quick Sort
13
5779 62
4128 35
i j
9684
i++
Quick Sort
13
5779 62
4128 35
i j
9684
57>84 ??
Quick Sort
13
5779 62
4128 35
i j
9684
57>84 ??
False
Quick Sort
13
5779 62
4128 35
i j
9684
Quick Sort
13
5779 62
4128 35
i j
9684
i++
Quick Sort
13
5779 62
4128 35
i j
9684
i=j
Quick Sort
13
5779 62
4128 35
i j
9684
a[0] a[1] a[2] a[0] a[0]
Quick Sort
13
5779 62
4128 35
9684
a[0] a[1] a[2] a[0] a[0]
numbers less than p
numbers greater
than or equal to p
Quick Sort
13
5779 62
4128 35
96
84
Quick Sort
13 5779 624128 35
96
84
Now we sort numbers greater than or equal to p
Quick Sort
13 5779 624128 35
96
84
i j
i=j=96
Quick Sort
13
5779 62
4128 35 9684
Now we sort numbers less than p
Quick Sort
13
5779 62
4128 35 9684
i j
Pivot = 79
Quick Sort
13
5779 62
4128 35 9684
i j
79>57 ??
Quick Sort
13
5779 62
4128 35 9684
i j
79>57 ??
True
Quick Sort
13
5779 62
4128 35 9684
i j
Quick Sort
13
62
4128 35 9684
i j
7957
Quick Sort
13
62
4128 35 9684
i j
7957
i++
Quick Sort
13
62
4128 35 9684
i j
7957
62>79 ??
Quick Sort
13
62
4128 35 9684
i j
7957
62>79 ??
False
Quick Sort
13
62
4128 35 9684
i j
7957
i++
Quick Sort
13
62
4128 35 9684
i j
7957
i=j
Quick Sort
13
62
4128 35 9684
7957
a[0] a[1] a[0]
Quick Sort
13
62
4128 35 9684
7957
a[0] a[1] a[0]
numbers less than p
Quick Sort
13
62
4128 35 968479
57
Quick Sort
13
62
4128 35 968479
57
Now we sort numbers less than p
Quick Sort
13
62
4128 35 968479
57
i=57 j=62
Pivot = 57
i j
Quick Sort
13
62
4128 35 968479
57
i j
57>62 ??
False
Quick Sort
13
62
4128 35 968479
57
i j
j--
Quick Sort
13
62
4128 35 968479
57
i j
i=j
Quick Sort
13
62
4128 35 968479
57
numbers greater
than or equal to p
Quick Sort
13
62
4128 35 96847957
Now we sort numbers greater than or equal to p
Quick Sort
13
62
4128 35 96847957
i=62 j=62
Pivot = 62
i j
Quick Sort
13
62
4128 35 96847957
i j
i=j
Quick Sort
13
62
4128 35 96847957
Quick Sort
13 624128 35 96847957
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8]

Quick sort