排序法系列-快速排序法
快速排序法是对冒泡排序法的一种改进。他的基本思想是通过一趟排序把数据分割成独立的两部分, 其中一部分的所有数据都比另一部分要小,以达到整个数据的排序。
首先选取一个数据为基准X通常选取第一个数据。设置两个变量I,J开始排序的时候I = 0 J = N-1(这里N为数据的个数)。从J开始搜索,即从后往前搜索,找到小于X的值两者交换。,之后从I开始搜索,找到大于X的值交换两者,交叉重复以上两步,直到I = J;
举个例子:
A[0] A[1] A[2] A[3] A[4] A[5]
49 38 65 97 76 13
进行第一次排序:
交换之后的结果 13 38 65 97 76 49这时J = 4;
第二次排序:
交换之后的结果 13 38 49 97 76 65这时I = 2;
第三次排序:
交换之后的结果 13 38 49 97 76 65 这时J = 2;
I = J快速排序结束。{13 38} 49 {97 76 65} 达到预期结果