随笔分类 - 数据结构-算法
peserver
摘要:上一篇分析了归并排序过程,本篇将堆排序完结,同时分析快速排序过程。通过build_max_heap,对给定的数据,建立一个最大堆结构,此时,堆排序任务已经完成了80%,建立好的最大堆,堆顶为最大元素,输出堆顶,然后将最后叶子切换到堆顶,重新建立最大堆,再次输出堆顶,依次重复建立最大堆过程,直至输出输出所有元素,最后形成的序列即为有序序列,降序序列。程序里紧紧对过程模拟,输出堆顶后,赋值为-1,而不删除元素,模拟最终的输出: int i = 0; stringstream iss; for (; i = key) { continue; ...
阅读全文
摘要:有段时间没看算法了,今天拿起算法书,随手就翻到排序这一章,排序是几乎每本data structure中都要提到的一部分内容,排序方法可谓林林总总。翻到其中的归并排序和快速排序,由于这两个排序算法都可以用到递归,这里将二者一同列出,进行比较,加深理解。首先从归并开始1、归并排序 归并排序,从字面上理解,将多个部分进行"归并"在一起,即Merge起来,事实,归并过程中就是对已经有序的部分merge起来的,即两路归并为例,假设需要归并的两个子数组中数据均已经有序,比如,如下的两个子数组。sub_a[] = {1,3,,5,7}sub_b[] = {2,4,6,8}现在需要将两个子
阅读全文

浙公网安备 33010602011771号