算法学习:归并排序,快速排序,堆排序
排序算法中用的最多的是快速排序和归并,还有堆排序。因为效率比较高,时间复杂度均为O(nlogn)。
用l,r表示待排序数组左右端点
快速排序
快速排序的步骤:
1、确定分界点x 一般是l,r,或者mid。
2、调整范围
把数组整理成两部分以j位置为分界点,j左边的数都小于等于x,右边的数都大于等于分界点x,这是j位置上的数不一定是x。(根据下面的代码)其他的算法书上有将j位置归位为x的代码(见算法4)。
3、递归处理两边
代码如下
void quick_sort(int q[ ],int l,int
原创
2021-03-06 00:13:23 ·
180 阅读 ·
0 评论