数据结构/算法
文章平均质量分 69
oohaha_123
这个作者很懒,什么都没留下…
展开
-
五种常用算法之一:贪心算法
贪心算法贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。原创 2014-04-17 17:39:51 · 2064 阅读 · 0 评论 -
快速排序时间复杂度为O(n×log(n))的证明
之前只知道快速排序的平均时间复杂度为O(n×log(n)),最糟糕时复杂度为原创 2014-05-22 11:17:52 · 10234 阅读 · 1 评论 -
平衡二叉查找树的一些知识总结
首先说明一下平衡二叉查找树的定义:原创 2014-05-21 12:01:55 · 1614 阅读 · 0 评论 -
C++编程练习(16)----“排序算法 之 快速排序“
快速排序基本思想:通过一趟排序将dai原创 2014-05-12 21:33:37 · 723 阅读 · 0 评论 -
分治、动态规划、贪婪 之 算法分析
分治与动态规划都用到了递归的思想,但是我对他们之间的区别在概念上一直比较模糊,今天附带贪婪选择稍微整理一下他们。算法之道上说,标准分治、动态规划、贪婪选择称得上是孙子兵法的下、中、上策。标准分治虽然将大问题分解成小问题,但是每个小问题都需要解决,相当于逢城必攻实属下策;动态规划则聪明地发现,很多子问题都相同,那么重复的子问题可以不用重复计算,就是不对每个城市进行攻破,从而节省精力和兵力,但仍然原创 2014-05-11 10:08:47 · 859 阅读 · 0 评论 -
C++编程练习(17)----“二叉树非递归遍历的实现“
最近看书上说道要掌握二叉树遍历的6种编写方式,原创 2014-05-15 17:58:10 · 2274 阅读 · 0 评论 -
C++编程练习(13)----“排序算法 之 堆排序“
堆排序堆是具有下列性质的完全二叉树:每个结点的值都day原创 2014-05-08 15:29:45 · 821 阅读 · 0 评论 -
C++编程练习(15)----“排序算法 之 归并排序“
归并排序归并排序(Merging Sort)的原理:原创 2014-05-09 17:18:22 · 806 阅读 · 0 评论 -
五种常用算法之五:分支限界法
分支限界法基本思想:原创 2014-04-23 23:19:40 · 6341 阅读 · 0 评论 -
五种常用算法之四:回溯法
回溯法(探索与回溯法)是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。原创 2014-04-23 11:59:39 · 3237 阅读 · 0 评论 -
C++编程练习(14)-------“单例模式”的实现
单例模式 单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。原创 2014-05-07 11:22:23 · 1024 阅读 · 0 评论 -
五种常用算法之三:动态规划
动态规划原创 2014-04-18 20:29:04 · 1626 阅读 · 0 评论 -
五种常用算法之二:分治算法
分治算法原创 2014-04-18 10:51:06 · 1447 阅读 · 0 评论 -
四种数据存储结构---顺序存储 链接存储 索引存储 散列存储
存储结构分四类:顺序存储、链接存储、索引存储和散列存储。原创 2014-05-28 21:02:25 · 6563 阅读 · 1 评论