这是一个《算法导论》上的练习,可将插入排序的总体运行时间降至Θ(nlgn),我们先看看插入排序的算法代码: 从代码可以看出,arr[j] > temp的判断查找是在前面所有小于 j 的部分中进行移动和查找的,而小于的 j 部分都是已经排好序的,因此我们可设计使用二分查找带进行更快速的处理。但我的尝试 ...
分类:
编程语言 时间:
2017-09-21 14:52:43
阅读次数:
133
在摊还分析中,通过求数据结构的一系列的操作的平均时间,来评价操作的代价。这样,即使这些操作中的某个单一操作的代价很高,也可以证明平均代价很低。摊还分析不涉及概率,它可以保证最坏情况下每个操作的平均性能。 摊还分析有三种常用的技术: 聚合分析,它确定n个操作的总代价的上界为T(n),所以每个操作的平均 ...
分类:
编程语言 时间:
2017-09-20 21:51:34
阅读次数:
140
自开始学习算法起,我感觉就是跪着把《算法导论》的代码看一遍、理解一遍然后敲一遍...说实话自己来写并且要求时间复杂度达到要求,我肯定是不能做到的,但我想前辈们辛苦积累的研究成果贡献出来也是为了让后人少走一些弯路,所以我的作用就是把前辈们的成果学习之后加以理解,然后积累经验,领悟到他们解决问题时的思路 ...
分类:
其他好文 时间:
2017-09-18 22:22:30
阅读次数:
333
观看了麻省理工大学的算法导论课程,讲解了动态规划求解最长公共子序列的方法,受益匪浅,现做个总结。 课程链接如下:http://v.youku.com/v_show/id_XOTMyMDc1MjIw.html?spm=a2h0k.8191407.0.0&from=s1.8-1-1.2 1、公共子序列和 ...
分类:
其他好文 时间:
2017-09-16 13:22:01
阅读次数:
260
//参考博文:http://blog.csdn.net/so_geili/article/details/53353593 //1.渐近效率: A:指的是当输入规模无限增加时,在极限中,算法的运行时间如何随着输入规模的变大而增加 B:通常,渐近的表示某个算法对除很小的输入外的所有情况都将是最好的选择... ...
分类:
编程语言 时间:
2017-09-13 23:16:10
阅读次数:
275
目录1 红黑树的介绍2 红黑树的应用3 红黑树的时间复杂度和相关证明4 红黑树的基本操作(一) 左旋和右旋5 红黑树的基本操作(二) 添加6 红黑树的基本操作(三) 删除 作者:Sky Wang 于 2013-08-08 概述:R-B Tree,又称为“红黑树”。本文参考了《算法导论》中红黑树相关知 ...
分类:
编程语言 时间:
2017-09-07 00:05:15
阅读次数:
184
双调欧几里得旅行商问题是一个经典动态规划问题。《算法导论(第二版)》思考题15-1和北京大学OJ2677都出现了这个题目。 旅行商问题描述:平面上n个点,确定一条连接各点的最短闭合旅程。这个解的一般形式为NP的(在多项式时间内可以求出) J.L. Bentley 建议通过只考虑双调旅程(bitoni ...
分类:
编程语言 时间:
2017-08-25 21:41:17
阅读次数:
267
快速排序是目前平均性能最好的排序方式,被作为数组排序首选。 基本思想:将一个数组分为左右两部分以q为界,左部分小于q,右部分大于q;接下来分治策略,将左右两部分继续按照这个规则划分,直至不能划分,该数组便排序完毕。 关键:如何划分左右部分?q该取哪个值?(恕我愚钝,算法导论上的做法没看懂,于是逼着自 ...
分类:
编程语言 时间:
2017-08-25 01:05:37
阅读次数:
164
结构树 1. 算法导论 数据结构 算法 2. 传统智能算法 蚁群算法 遗传算法 模拟退火算法 禁忌搜索 3. 机器学习 前沿算法 小样本学习 贝叶斯推理及理论 图模型 核方法 谱方法 4. 优化方法深度 5. 深度学习 梯度方法探讨 强化学习 迁移学习 对抗学习 表示学习 稀疏学习 主动学习 NLP ...
分类:
其他好文 时间:
2017-08-24 21:33:28
阅读次数:
135
22-1 (以广度优先搜索来对图的边进行分类)深度优先搜索将图中的边分类为树边、后向边、前向边和横向边。广度优先搜索也可以用来进行这种分类。具体来说,广度优先搜索将从源结点可以到达的边划分为同样的4种类型。 a.证明在对无向图进行的广度优先搜索中,下面的性质成立: 1.不存在后向边,也不存在前向边。 ...
分类:
编程语言 时间:
2017-08-24 16:17:56
阅读次数:
297