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