三九宝宝网宝宝百科宝宝知识

汉诺塔的C语言实现以及冒泡排序

11月21日 编辑 39baobao.com

[幼教反思:冒泡泡的矿泉水]体育活动刚结束,小朋友们回到教室就嚷嚷着要喝水。看着孩子们一个个依次排着队喝水,我就准备起下个活动的东西。等我准备好东西再抬头的时候,却看见亮亮、军军、冬冬三个小家伙...+阅读

汉诺塔绝对是一个经典的算法题目,虽然当年也讲过,程序也不长,但是一直以来总觉得理解的不清楚,看程序也能明白什么意思,过一段时间程序忘了,想不起来的时候,就怎么都想不明白了,虽然说好像是那么回事,就是高不明白。借着前两天做八皇后的东风,顺便来理一下这个汉诺塔。园盘从上到下编号1, 2, ..., n,杆子从左至右A,B,C,A是from,C是to。我还是看了以前的ja程序然后自己理解一下写的C程序,几乎没有差别,当然写的时候也忘了不少,第一遍出来错误的答案。程序如下:

#include

#define INIT_NUM 3

int count;

void hanoi(int n, char from, char to, char middle)

{

if (n >0)

{

count++;

hanoi(n-1, from, middle, to);

printf("Move No.%-2d from %c to %c\n", n, from, to);

hanoi(n-1, middle, to, from);

}

}

int main(int argc, char *ar[])

{

int init = INIT_NUM;

if (argc==2)

init = atoi(ar[1]);

printf("A 是起始杆,C 是辅助杆,B 是目的杆。\n\n");

hanoi(init, 'A', 'C' , 'B');

printf("\nCount = %d", count);

return 0;

}

借着这股东风,考试.大提示再顺便写一下排序的算法实现,冒泡跟快速排序了,现在先写一个冒泡排序吧:

#include

void show (int *p)

{

int i=0;

for (i=0 ;i

以下为关联文档:

C语言实现以及冒泡排序汉诺塔绝对是一个经典的算法题目,虽然当年也讲过,程序也不长,但是一直以来总觉得理解的不清楚,看程序也能明白什么意思,过一段时间程序忘了,想不起来的时候,就怎么都想不明白了,虽然...

推荐阅读
图文推荐