
数据结构与算法
文章平均质量分 58
DNFM
透过现象看本质!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
使用递归方法实现全排列
问题:编程实现对任一集合(e.g. {a b c})的全排列。 一、原理分析 总的思路就是,将集合中的每一个元素都和第一个元素交换一下位置,这样就形成了三个新的集合——a{b,c},b{a,c},c{a,b}。再对每一个"{}"括起来的集合进行同样的操作,直到集合中只剩下一个元素时,输出结果,递归程序返回。如下所示: 第一轮交换 | 进一步交换 | 因为只剩下1个元素了...原创 2018-02-13 07:32:06 · 814 阅读 · 0 评论 -
冒泡排序法
假设待排序序列为:5 4 3 2 1。 一、原理 每一轮将一个最大的数沉底。 第一轮(两两比较4次(5-i=4),i代表第几轮): 4 5 3 2 1 4 3 5 2 1 4 3 2 5 1 4 3 2 1 5 第二轮(两两比较3次(5-i=3)): 3 4 2 1 5 3 2 4 1 5 3 2 1 4 5 第三轮(两两比较2次(5-i=2)): ...原创 2018-02-13 12:26:19 · 356 阅读 · 0 评论 -
快速排序法
一、原理 以序列中的一个数为标准,用这个数和序列中的每一个数比较(有指定的方法),使其左边的数都不大于它,右边的数都不小于它。然后在对左右两边的子序列做同样的操作。例如: 初始状态: { 49 38 65 97 76 13 27 } 进行一轮快速排序之后变为: { 27 38 13 } 49 { 76 97 65 } 在分...原创 2018-02-13 18:35:36 · 1310 阅读 · 0 评论 -
汉诺塔算法
一、原理 河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于1883年从泰国带至法国的,河内为越战时北越的首都,即现在的胡志明市。1883年法国数学家 Edouard Lucas曾提及这个故事,据说创世纪时Benares有一座波罗教塔,是由三支钻石棒(Pag)所支撑,开始时神在第一根棒上放置64个由上至下依由小至大排列的金盘(Disk),并命令僧侣将所有的金盘从第一...原创 2018-03-10 11:16:40 · 750 阅读 · 0 评论