算法学习记录
Switch0169
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
算法学习——归并排序
文章目录归并排序一、实现思路二、代码实现注意事项 归并排序 一、实现思路 以有序数据之间的归并为基础,采用分治的策略,即将一组无序的待排数据拆解成两部分进行归并,并且对被拆解的两部分进行递归式求解。由递归的写法中我们无需关心具体每一步分执行的过程,只需当作他返回了正确的有序解。 二、代码实现 void merger(int left, int right) { int mid = (left + right) / 2; int p1 = left; int p2 = mid + 1原创 2021-07-02 22:33:05 · 128 阅读 · 0 评论 -
算法学习——堆排序
文章目录一、堆排序思路二、代码实现1.堆的调整代码2.堆排序注意事项 一、堆排序思路 1.建堆(一般将给出的无序数据存为一个数组,将数组视作一个堆)。 2.对堆进行维护,使得整个堆符合堆排序的定义。 3.将堆顶元素与堆的最后一个元素交换,并且将堆的最后一个元素取出。 4.重新调整结构,使其满足堆定义,然后继续交换堆顶元素与当前末尾元素,反复执行调整+交换步骤,直到整个序列有序。 二、代码实现 1.堆的调整代码 void adjust(int i, int last) { int left =原创 2021-06-26 23:51:50 · 145 阅读 · 2 评论 -
算法学习——快速排序
算法笔记备忘快速排序1. 基本思想2. 时间复杂度3. 代码实现4. 代码注意点 快速排序 1. 基本思想 以将数据分割成两部分为一趟,其中前面的部份都比中间的数据小(升序情况下),后面的数据都比中间的数据大,之后对分割的两部分分别在进行一趟上述的排序,直到整个数据变成有序序列。一般采取递归写法方便实现。 2. 时间复杂度 O(nlogn) 3. 代码实现 void Qsort(int d[], int low, int height) { if(low >= height)原创 2021-06-19 15:12:47 · 140 阅读 · 0 评论
分享