在当前无序区R[1..H]中任取一个数据元素作为比较的“基准”(不妨记为X),用此基准将当前无序区划分为左右两个较小的无序区:R[1..I-1]和R[I+1..H],且左边的无序子区中数据元素均小于等于基准元素,右边的无序子区中数据元素均大于等于基准元素,而基准X则位于最终排序的位置上,即R[1..I-1]≤X.Key≤R[I+1..H](1≤I≤H),当R[1..I-1]和R[I+1..H]均非空时,分别对它们进行上述的划分过程,直至所有无序子区中的数据元素均已排序为止。
例,使用快速排序对7、8、3、4、9、1 进行从小到大的排序(仅写出第一趟的结果,以第一个元素为主)。
排序过程分析:
第一趟 7 8 3 4 9 1
第二趟 1 8 3 4 9 7
第三趟 1 7 3 4 9 8
第四趟 1 4 3 7 9 8
第五趟 1 4 3 7 9 8
一般来说,在考试的时候,只问第一趟的结果,也就是以第一个元素为主排列的结果。