排序算法
文章平均质量分 55
KazeHelloWorld
这个作者很懒,什么都没留下…
展开
-
堆排序
堆排序 堆排序基本思想及步骤 堆排序的基本思想是:将待排序序列构造成一个大顶堆,此时,整个序列的最大值就是堆顶的根节点。将其与末尾元素进行交换,此时末尾就为最大值。然后将剩余n-1个元素重新构造成一个堆,这样会得到n个元素的次小值。如此反复执行,便能得到一个有序序列了 代码实现 void heapsort(vector<int>& arr) { for (int i = arr.size() / 2 - 1; i >= 0; --i) { a原创 2021-01-08 15:52:37 · 99 阅读 · 0 评论 -
快速排序
快速排序 快排思路: 每次排序我们先选定我们要确定位置的值(一般定为数组开头数),然后从头尾两个方向遍历数组,尾部数应该比这个数大,大的话则递减j;头部的数应该比这个数小,小的话递加i; 这次遍历j停在比这个数小的数上面,i停在比这个数大的数上面,那么最后我们交换这两个数。循环进行遍历,直到i>=j停止。最后停的位置就是我们目标数的正确位置,最后再交换这个数和对应位置,完成此次排序。 代码如下: vector<int> MySort(vector<int>& a原创 2021-01-07 15:10:46 · 74 阅读 · 0 评论