摘要: 核心思想:i从第二位元素开始,将数据插入左侧有序数列中,左侧大于该数的元素右移。 直接插入排序的实现: 测试: 结果: 阅读全文
posted @ 2018-12-27 21:55 人类一思考上帝就发笑 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 冒泡思想:两两比较相邻记录,内循环将最小的数通过交换浮上来。 优化思想:设置flag,对已经有序的序列就不继续判断了 冒泡排序的实现: 测试: 结果: 阅读全文
posted @ 2018-12-26 23:15 人类一思考上帝就发笑 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 插值查找是二分查找的改进,斐波那契查找是插值查找的改进。 二分查找:mid=(low+high)/ 2 插值查找:mid=(key-a[low])*(high-low)/ (a[high]-a[low]) 斐波那契查找主要思想是只要长度符合斐波那契数列,则该段数字可以用两个子段来分割,F(k)-1= 阅读全文
posted @ 2018-12-25 23:43 人类一思考上帝就发笑 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 图(Graph)是由顶点的有穷非空集合和顶点之间的边组成。G(V,E) V表示顶点的集合,E表示边的集合。 在无向图中,边可以表示为E1={(A,D),(B,C)} 在有向图中,顶点v1和v2的有向边称为弧。表示为<v1,v2> v1称为弧尾,v2称为弧顶。 在无向图中,如果任意边两个顶点都存在边, 阅读全文
posted @ 2018-12-25 23:21 人类一思考上帝就发笑 阅读(308) 评论(0) 推荐(0) 编辑
摘要: Huffman树指的是带权路径长度WPL最小的二叉树 WPL=路径*权值 Huffman常用于压缩编码,正常传输ABCDEF这些字母需要3位二进制树来描述,但由于一篇文章中ABCDEF这些字母出现的概率不同,用较多的二进制位数表示出现概率低的字母,而用较少的二进制位数表示概率高的字母。 Huffma 阅读全文
posted @ 2018-12-24 02:15 人类一思考上帝就发笑 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 树在数据结构中占有非常重要的地位。本文从树的基本概念入手,给出完美(Perfect)二叉树,完全(Complete)二叉树和完满(Full)二叉树的区别。如果学习过二叉树,但是对这三种二叉树并没有深入的理解,或者完全被国产数据结构教科书所误导(只听说过满二叉树和完全二叉树)的朋友不妨花点时间耐着性子 阅读全文
posted @ 2018-12-23 23:09 人类一思考上帝就发笑 阅读(557) 评论(0) 推荐(0) 编辑
摘要: 在上一篇线性表我们会发现使用头插法和尾插法会导致遍历时的顺序相反。栈和队列就是这样遵循一定插入和删除规则的线性表。 栈:先入后出 队列:先入先出 这里我们用数组(顺序结构)来实现栈和队列 栈的实现: 测试: 结果: 两个栈可以相互连接形成共享栈,共享栈空间,提高每个栈的利用率。 共享栈的实现: 测试 阅读全文
posted @ 2018-12-23 21:13 人类一思考上帝就发笑 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 线性表指的是具有相同类型的n(n>=0)个数据元素组成的有限序列。通常有顺序存储和链式存储两种实现方式。 顺序存储通常用数组来实现,即占用一段连续的内存空间来关联数据的先后顺序。链式存储通常用指针来实现,即需要保存两个空间数据域和指针域的信息,用指针来关联线性表不同元素的内存地址,换句话来说,链式存 阅读全文
posted @ 2018-12-23 18:03 人类一思考上帝就发笑 阅读(162) 评论(0) 推荐(0) 编辑