![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
miracle_dan
这个作者很懒,什么都没留下…
展开
-
[Algorithm_Learn_04]分治法之快速排序
代码实现可到此处下载:http://download.csdn.net/detail/elcarim/6542567 当前代码工程中包含了 堆排序、快速排序,后面会持续更新。 在归并排序中我们已经讨论过一次分治法在排序算法中的应用,这片文章中使用的快速排序法将会再次使用分治思想。 1快速排序有多快 与它的名字一样,快速排序有着很高的效率。如算法导论中所述,虽然其最坏情况的时间复原创 2013-11-12 23:37:55 · 798 阅读 · 0 评论 -
[Algorithm_Learn_01]单源最短路径
序 工作后一直都处于高压状态,现实生活把理想压的快喘不过气来,有时候很压抑、很累,没有理想的生活让人厌恶。 在学校的时候就想学学算法,一直没有投入进去,这次又突然燃起了兴趣,不管能不能坚持下去,反正此刻是真的做了自己想做的事,就在这里展开理想吧。 1. 最短的路线 在了解这个算法前,先来看一个问题。 图上的城市之间的连线代表有道路可达,数字代码两城市之间的距离。那么从城市A出发,原创 2012-11-15 23:16:15 · 811 阅读 · 0 评论 -
[Algorithm_Learn_02]分治法之归并排序
分治法 1 分而治之 分而治之,各个领域都会用到的概念,基本思想即把一个复杂的问题拆分为若干个简单的子问题进行处理。作为算法领域中一个重要的算法范式,分治法又是如何应用的呢? 《算法导论》开篇就讨论了插入排序和归并排序,而归并排序就是分治法应用的一个实例。 2 归并排序 对n个数进行排序,当n足够大时,归并排序(算法时间复杂度为ϑ(nlgn))相对于插入排序(算法时间复杂度为ϑ(n^2)原创 2013-10-27 19:11:17 · 805 阅读 · 0 评论 -
[Algorithm_Learn_03]原地排序之堆排序
堆排序的核心是使用了最大(最小)堆这样一种数据结构,最大/最小堆可以用这样一句简单的话来描述:永远把最大(最小)的元素放在堆的顶部,子女一定比祖先小(大)。下面基于最大堆进行堆排序的讨论,即按升序排序。 1 原理说明 还是通过例子和图来解释: 规则. 最大堆的叶子节点必定集中在左边。 因此,对于这样一组数据{8,2, 5, 9, 7, 3, 7, 6},有如下图所示的堆结构。原创 2013-11-06 20:34:09 · 948 阅读 · 2 评论 -
[Algorithm_Learn_05]二叉查找树(实现了树结构打印功能)
二叉查找树C++实现,特别的是,这次实现了一个打印二叉树结构的方法,这样在调试二叉查找树和红黑树的程序时,可以方便的观察到增加删除操作对树结构的影响。原创 2013-12-23 22:51:02 · 998 阅读 · 0 评论