第二周项目3-体验复杂度(2)汉诺塔问题
2015-09-11 08:22
204 查看
问题及代码
运行结果
disCount为4
![](https://img-blog.csdn.net/20150908193607940?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
disCount为8
![](https://img-blog.csdn.net/20150908193630792)
disCount为16
![](https://img-blog.csdn.net/20150908193640817)
disCount为20
![](https://img-blog.csdn.net/20150908193711552)
disCount为24
![](https://img-blog.csdn.net/20150908193723254)
知识点总结
体验了指数级算法的复杂度
学习心得
由程序结果可知,指数级的算法增长速率快,花费时间多,在平时使用中应尽量少用指数级的算法。
/* *Copyright (c) 2015,烟台大学计算机学院 *All rights reserved. *文件名称:test.cpp *作者: *完成日期:2015年09月11日 *版本号:v1.0 * *问题描述:体验在盘子数disCount不同的情况下,时间上耗费的差异 *输入描述:输入不同的盘子数 程序输出: 盘子数不同的情况下,所用时间 */ #include <stdio.h> #define discCount 4 long move(int, char, char,char); int main() { long count; count=move(discCount,'A','B','C'); printf("%d个盘子需要移动%ld次\n", discCount, count); return 0; } long move(int n, char A, char B,char C) { long c1,c2; if(n==1) return 1; else { c1=move(n-1,A,C,B); c2=move(n-1,B,A,C); return c1+c2+1; } }
运行结果
disCount为4
disCount为8
disCount为16
disCount为20
disCount为24
知识点总结
体验了指数级算法的复杂度
学习心得
由程序结果可知,指数级的算法增长速率快,花费时间多,在平时使用中应尽量少用指数级的算法。
相关文章推荐
- RS232与RS422/485
- 第2周项目0 宣告“主权”
- 自我介绍
- Win8 设置任务栏最近使用项目条数
- WifiDog认证流程
- 第二周 项目1 C/C++语言中函数参数传递的三种方式
- 3.2.5.5 一句话中的字随机排列
- SPI时序分析
- 3.2.5.5 一句话中的字随机排列
- ios 控件代码transform学习笔记
- 第2周 项目1 - C/C++语言中函数参数传递的三种方式
- 项目0 宣告主权!
- java-内部类
- 使用height:100%后出现滚动条
- MySQL查询5分钟内的数据
- Linux 有问必答:如何解决 Linux 上的 Wireshark 界面僵死
- 第2周项目1c/c++语言中函数参数传递的三种方式
- 2015年最新数据库流行排行榜
- 新安装配置
- sqlplus 上下工具