数据结构
KimEddy
这个作者很懒,什么都没留下…
展开
-
快速排序
快速排序 设要排序的数组是Arr[0]—–Arr[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动 , 因此,快速排序是不稳定的排序。 代码int AdjustArray(int s[转载 2017-08-28 21:29:41 · 532 阅读 · 1 评论 -
赫夫曼编码
赫夫曼编码在计算机资料处理中,霍夫曼编码使用变长编码表对源符号(如文件中的一个字母)进行编码,其中变长编码表是通过一种评估来源符号出现机率的方法得到的,出现机率高的字母使用较短的编码,反之出现机率低的则使用较长的编码,这便使编码之后的字符串的平均长度、期望值降低,从而达到无损压缩数据的目的。 实验要求 理解huffman树构造方法 要求给定若干输入权重,给出huffman 编码结果 #i原创 2017-08-28 21:09:08 · 291 阅读 · 0 评论 -
旋转数组求最小值
旋转数组求最小值把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例子例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。思路 对于数组{3,4,5,1,2},我们可以使用二分法的思想,使用2个指针,第一个指针指向头,第二个指针原创 2017-08-28 21:47:43 · 260 阅读 · 0 评论