读数据结构与算法分析 插入排序 核心:利用的是从位置0到位置P都是已排序的 所以从位置1开始排序,如果当前位置不对,则和前面元素反复交换重新排序 实现 希尔排序 使用hk增量序列进行一趟排序后,对每个i都有 重要性质:一个hk排序的文件在之后的排序中将保持hk排序性 实现 ht = [N / 2] ...
分类:
编程语言 时间:
2018-09-08 16:00:38
阅读次数:
195
数据结构与算法分析 优先队列 模型 Insert(插入) == Enqueue(入队) DeleteMin(删除最小者) == Dequeue(出队) 基本实现 简单链表:在表头插入,并遍历该链表以删除最小元 时间代价昂贵 二叉查找树 二叉查找树支持许多不需要的操作,实现麻烦,不值得 最合适:二叉堆 ...
分类:
编程语言 时间:
2018-09-08 16:00:13
阅读次数:
200
7.1 预备知识 1,算法接收 含元素的数组和包含元素个数的整数 2,基于比较的排序 7.2 插入排序 代码实现 理解描述 位置i上元素存于Tmp中,i之前所有更大的元素向右移一位(i前所有元素已排序),Tmp被置于正确位置。 分析 1,(未排序)嵌套循环每个花费N次迭代,为O(N^2) 2,(已排 ...
分类:
编程语言 时间:
2018-09-02 11:05:18
阅读次数:
187
有人说对于JAVA后台开发人员来说,算法没有那么重要,尤其是随着时代的发展,各种编程模式,设计模式,框架,架构等等概念越来越多,但是也有人说数据结构与算法是程序的灵魂,是朴素的基础,也是各种优化程序最根本的措施,我可能更偏向于后者,但是我觉得现在【程序=数据结构+算法】这个等式已经不再成立了,有许多 ...
分类:
编程语言 时间:
2018-08-26 11:59:38
阅读次数:
119
本篇文章主要是对 PHP HashTable 总结,下面的参考链接是很好的学习资料。学习“散列”这个数据结构—推荐《数据结构与算法分析 C语言描述》 总结 HashTable 又叫做散列表,是一种用于以常数平均时间执行插入、删除和查找的技术。不能有效的支持元素之间的排序。——《数据结构与算法分析 C ...
分类:
Web程序 时间:
2018-08-23 22:16:46
阅读次数:
266
算法是什么? 举个简单的例子 当年刘景生病危刘琦被卷入继位之事 无奈求助于诸葛亮 以上古兵书为由 邀孔明阁楼相谈.... 诸葛亮曾说 那部阵书开篇就是阵法源自于心法 所以古代军师进步也是看兵法 算法也是同理 虽然我们作为web后端开发人员 但是每天所见所闻日子久也就适应了。 但是想要再进一步 两种方 ...
分类:
编程语言 时间:
2018-08-20 16:43:17
阅读次数:
205
前几节我们开发的智能指针类和异常类族并没有继承自Object,现在我们需要将它们进行整合,作为DTLib这个类库的基础设施。整合的时候需要遵循现代软件的架构模式。 遵循经典设计准则 DTLib中所有类位于单一继承树,可以根据下图中的方式进行整合: 在异常类族中有了新的成员InvalidOperati ...
分类:
其他好文 时间:
2018-08-19 13:54:17
阅读次数:
114
最近一直在看数据结构与算法,下面是对有线性结构的栈与队列的总结: 栈相关的内容 定义:栈是限定仅在表尾进行插入和删除操作的线性表。(后进先出的线性表) 操作:在可以插入与删除的一端称为栈顶,另外一端称为栈底, 栈的插入称为进栈,栈的删除称为出栈。 图解:A,B,C依次入栈,然后依次出栈得到C,B,A ...
分类:
其他好文 时间:
2018-08-17 20:07:15
阅读次数:
188
参考:Mark Allen Weiss 著《数据结构与算法分析——C语言描述》(第二版) 1 树的定义 一棵树是一些节点的集合。这个集合可以是空集;若非空,则是一棵树由称作根的节点r以及0个或者多个非空的子树组成。这些子树中每一棵的根都被来自根 r的一条有向的边所连接。图1 就是一棵具体的树, 图1 ...
分类:
其他好文 时间:
2018-08-13 20:58:59
阅读次数:
210