项目三-体验复杂度(2)汉诺塔
来源:互联网 发布:centos rm 恢复 编辑:程序博客网 时间:2024/06/05 00:14
/*
* copyright (c) 2016,烟台大学计算机学院
* All rights reserved.
* 文件名称:1.cpp
* 作者:孟令群
* 完成日期:2016年9月8日
* 版本号:v1.0
* 问题描述:用递归算法求解汉诺塔问题,其复杂度可以求得为O(2^n) ,是指数级的算法。请到课程主页下载程序运行一下,体验盘子数discCount为4、8、16、20、24时在时间耗费上的差异,你能忍受多大的discCount。
* 输入描述:无(盘子数已定义)
* 程序输出:盘子需要移动的次数
* copyright (c) 2016,烟台大学计算机学院
* All rights reserved.
* 文件名称:1.cpp
* 作者:孟令群
* 完成日期:2016年9月8日
* 版本号:v1.0
* 问题描述:用递归算法求解汉诺塔问题,其复杂度可以求得为O(2^n) ,是指数级的算法。请到课程主页下载程序运行一下,体验盘子数discCount为4、8、16、20、24时在时间耗费上的差异,你能忍受多大的discCount。
* 输入描述:无(盘子数已定义)
* 程序输出:盘子需要移动的次数
*/
#include <stdio.h> #define discCount 1 //数值可改动 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; } }
运行结果:
知识点总结:
算法复杂度。
心得体会:
随着的盘子数的增大,需要移动的次数增大,在时间上的耗费逐渐增大;巩固了递归算法,加深了对算法复杂度的理解,为今后的算法学习有了更深的铺垫。
0 0
- 项目三-体验复杂度(2)汉诺塔
- 项目三-体验复杂度(2)汉诺塔
- 第二周 【项目三】体验复杂度(2)汉诺塔
- 第三周项目三-体验复杂度2(汉诺塔问题)
- 第三周项目三-体验复杂度2(汉诺塔问题)
- 【项目3(2)-体验复杂度 汉诺塔】
- 项目3-体验复杂度 2)汉诺塔
- 第二周 项目三-- (体验复杂度)汉诺塔
- 第二周项目三—体验复杂度(2)
- 第二周项目三-体验复杂度(2)
- 第2周项目三 体验复杂度
- 第二周——项目三(2)—体验复杂度-汉诺塔
- 第2周 项目3 (2) 体验复杂度(汉诺塔)
- 第2周项目3-体验复杂度(2)汉诺塔
- 第2周项目3-体验复杂度(2)汉诺塔
- 2015-9-11 项目3 - 体验复杂度 (2)汉诺塔
- 第二周项目3-体验复杂度(2)汉诺塔
- 第二周实践项目3-体验复杂度(2)汉诺塔
- Java基础知识学习总结(三)---关键字理论篇
- Java语言基础四
- bzoj1089-[SCOI2003]严格n元树
- 威佐夫博弈
- 装饰模式
- 项目三-体验复杂度(2)汉诺塔
- User-Agent 汇总
- spfa求单源最短路
- datatables 初始化实例
- 快速排序(重点)
- 去掉listview中item之间的横线以及设置listview的背景色
- c++中的类型萃取
- 会议如何进行网络直播
- tjut 3567