
数据结构与算法
HP的博客
To be an oscer.
展开
-
GTK+和C语言实现的哈夫曼文件压缩工具
/************************************************************************* > File Name: compressor.c > Author: hepan > Mail: hepan@xiyoulinux.org > Created Time: 2016年12月23日 星期五 11时15分0原创 2016-12-29 15:33:49 · 924 阅读 · 0 评论 -
归并排序非递归和递归实现
归并排序就是将2个有序表组合成一个新的有序表。假定待排序表有n个元素,则可以看成是n个有序的子表,每个子表长度为1,然后两两归并…不停重复,直到合成一个长度为n的有序序列为止。时间复杂度:每一趟归并为O(n),共log2n趟,所以时间为O(nlog2n) 空间复杂度:O(n) 稳定性:稳定归并排序非递归实现:#include <iostream>using namespace std;type原创 2017-03-08 23:29:26 · 1243 阅读 · 0 评论 -
自然合并排序
自然合并排序是合并排序算法的一种改进, 对于初始给定的数组, 通常存在多个长度大于1的已自然排好序的子数组段. 例如, 若数组a中元素为{1, 5, 2, 3, 6, 0, 7, 4, 8}, 则自然排好序的子数组段有{1, 5}, {2, 3, 6}, {0, 7}, {4, 8}. 用一次对数组a的线性扫描就足以找出所有这些排好序的子数组段. 然后将相邻的排好序的子数组段两两合并,构成更大的排好原创 2017-03-18 10:59:42 · 4089 阅读 · 1 评论