Working of Quick Sort
Working of Quick Sort
• Initialise pointer 𝑖 which points to the address just before the base address of an array.
9𝑝𝑖𝑣𝑜𝑡
�
8 2 4 7 1 3
=5
𝑣𝑎𝑙(𝑗) > 𝑝𝑖𝑣𝑜𝑡,
6 5
𝑖 𝑗
𝐼𝐺𝑁𝑂𝑅𝐸, 𝑗++
8 2 4 7 1 3 9
6 5 𝑣𝑎𝑙(𝑗) < 𝑝𝑖𝑣𝑜𝑡, 𝑖++ ,
𝑖
𝑠𝑤𝑎𝑝(𝑣𝑎𝑙(𝑖), 𝑣𝑎𝑙(𝑗))
�
�
2 8 4 7 1 3 9
𝑗+
6 5
𝑖 � +
�
2 8 4 7 1 3 9
6 5
Indian Institute of Technology, Mandi
𝑖 �
�
2 8 4 7 1 3 9
6 5
𝑣𝑎𝑙(𝑗) < 𝑝𝑖𝑣𝑜𝑡, 𝑖++ ,
𝑖
𝑠𝑤𝑎𝑝(𝑣𝑎𝑙(𝑖), 𝑣𝑎𝑙(𝑗))
�
�
2 4 8 7 1 3 9
𝑗+
6 5
𝑖 �
+
�
2 4 8 7 1 3 9
6 5 𝑣𝑎𝑙(𝑗) > 𝑝𝑖𝑣𝑜𝑡,
𝑖 𝐼𝐺𝑁𝑂𝑅𝐸
� , 𝑗++
�
2 4 8 7 1 3 9
6 5
Indian Institute of Technology, Mandi
𝑖 �
�
2 4 8 7 1 3 9
6 5 𝑣𝑎𝑙(𝑗) < 𝑝𝑖𝑣𝑜𝑡, 𝑖++ ,
𝑖 𝑠𝑤𝑎𝑝
� (𝑣𝑎𝑙(𝑖), 𝑣𝑎𝑙(𝑗))
�
2 4 1 7 8 3 9
6 5 𝑗+
𝑖 �
+
�
2 4 1 7 8 3 9
6 5 𝑣𝑎𝑙(𝑗) < 𝑝𝑖𝑣𝑜𝑡, 𝑖++ ,
𝑖 𝑠𝑤𝑎𝑝(𝑣𝑎𝑙 �(𝑖), 𝑣𝑎𝑙(𝑗))
�
2 4 1 3 8 7 9
6 5
2 4 1 3 5 7 9
6 8
𝑖 �
𝑝𝑖𝑣𝑜𝑡
�
2 4 =3
7 9 6
1 3 8
𝑖 𝑣𝑎𝑙(𝑗) < 𝑝𝑖𝑣𝑜𝑡, 𝑖++ ,
𝑠𝑤𝑎𝑝(𝑣𝑎𝑙(𝑖), 𝑣𝑎𝑙(𝑗))
�
�
2 4
1 3
Indian Institute of Technology, Mandi
2 4 1 3 5 7 9
6 8
𝑖 � 𝑖 �
𝑝𝑖𝑣𝑜𝑡 𝑝𝑖𝑣𝑜𝑡
� �
2 4 1 =3
7 9 6 =8
3 𝑣𝑎𝑙(𝑗) < 𝑝𝑖𝑣𝑜𝑡, 𝑖++ , 8 𝑣𝑎𝑙(𝑗) < 𝑝𝑖𝑣𝑜𝑡, 𝑖++ ,
𝑖 � 𝑠𝑤𝑎𝑝(𝑣𝑎𝑙(𝑖), 𝑣𝑎𝑙(𝑗)) 𝑖 � 𝑠𝑤𝑎𝑝(𝑣𝑎𝑙(𝑖), 𝑣𝑎𝑙(𝑗))
� �
2 4 7 9 6
1 3 𝑗+
8 𝑗+
𝑖 � 𝑖 �
+
+
� �
2 4 1 7 9 6
3 8
Follow the same Follow the same
steps steps
Indian Institute of Technology, Mandi