快速排序采用的是分治法,其平均时间复杂度为O(nlogn)
一趟快速排序的算法是[1]:
1)设置两个变量I、J,排序开始的时候:I=0,J=N-1; 2)以第一个数组元素作为关键数据,赋值给 key ,即 key =A[0]; 3)从J开始向前搜索,即由后开始向前搜索(J=J-1即J--),找到第一个小于 key 的值A[j],A[j]与A[i]交换; 4)从I开始向后搜索,即由前开始向后搜索(I=I+1即I++),找到第一个大于 key 的A[i],A[i]与A[j]交换;5)重复第3、4、5步,直到 I=J; (3,4步是在程序中没找到时候j