大话数据结构
心之所善兮
心之所善兮
展开
-
栈与队列
1.栈:是一个线性表,只可以在表尾(栈顶)添加或者删除元素,后进先出。 2.队列:是一个线性表,只可以在一端插入数据,在另一端删除数据。先进先出。原创 2016-03-03 01:21:07 · 231 阅读 · 0 评论 -
串
串:就是字符的集合,其逻辑结构与线性表一样。对串的操作有查找定位替换子串。 串的存储结构:顺序存储和链式存储。 KMP模式匹配算法:在用到在一个长串中查找是否还、原创 2016-03-06 22:49:01 · 235 阅读 · 0 评论 -
树
1树:可以为空,不为空时,仅有一个根节点,可以有多个子树,子树之间不交错。有序树和无序树。 2树中节点分类:根节点,叶节点,内部节点。节点拥有的子树树木称之为该节点的度,取这些度的最大值作为树的度。 3树的深度;树中节点的最大深度。 4.树的存储结构;顺序和链式存储。 简单的树:二叉树,该树的最大度为2。有5种基本形态,空,只有跟节点,只有左子树,只有右子树,左右子树都有。 特殊原创 2016-03-07 01:34:32 · 341 阅读 · 0 评论 -
数据结构绪论
1.逻辑结构:数据对象中数据间的关系; 有这些逻辑结构,(1)集合结构:数据元素之间无任何关联。 (2)线性结构:数据元素之间是一对一的关系。 (3)树形结构:数据元素之间是一对多的关系。 (4)图形结构:数据元素之间是多对多的关系。 2.物理结构:数据在存储媒介上的存储结构,所以它的物理结构应该要正确反应数据的逻辑结构。 有这些物理结构:(1)顺式存储:数据元素存储在地址连续的存储单原创 2016-02-24 22:13:36 · 286 阅读 · 0 评论 -
算法
1.算法的特性:有输入,输出,有穷性,可行性,确定性。 2.判断一个算法的效率,我们常看它们的最高介项,随着n的不断增大,在某一个时刻的n值之后的效率会越来越高。 3.算法的时间复杂度,这里用大O介方法表征。 具体步骤是先计算该算法的总体执行次数,然后根据下列步骤推导, (1)用常数1取代运行时间中所有的加法常数。 (2)修改后,只保留最高介项。 (3)如果最高介项存在且不是1,则去掉原创 2016-02-24 23:02:19 · 282 阅读 · 0 评论 -
线性表
1.线性表:就是数据元素的有序排列在一起组成一张表格。 (1)线性表的顺序存储结构:在存,读数据时,它的时间复杂度是O(1); 在删除和插入数据时,它的时间复杂度是O(n). 所以可知,线性表的顺序存储结构逻辑关系简单,可以快速的存取表中的任意元素。 但是当它插入 和删除元素,需要移动大量的元素,而且当线性表的长度变化较大时,难以确定存储空间的容量;容易造成存储空间的碎片。 (2)线性表原创 2016-02-28 13:09:08 · 360 阅读 · 0 评论 -
java中的常见8种排序算法
分类: 1)插入排序(直接插入排序、希尔排序) 2)交换排序(冒泡排序、快速排序) 3)选择排序(直接选择排序、堆排序) 4)归并排序 5)分配排序(基数排序) 所需辅助空间最多:归并排序 所需辅助空间最少:堆排序 平均速度最快:快速排序 不稳定:快速排序,希尔排序,堆排序。 1)插入排序 /** * 直接插入排序,性能比冒泡和简单选择排序好 * 算法复杂度O(n*n) *原创 2016-05-23 22:50:21 · 316 阅读 · 0 评论