摘要:
汉诺塔 - 解决思路1.如果只有一个金片,则把该金片从源移动到目标棒,结束。2.如果有n个金片,则把前n-1个金片移动到辅助的棒,然后把自己移动到目标棒,最后再把前n-1个移动到目标棒//Tower of Hanoi 汉诺塔#include <stdio.h>void TOH(int n, char A, char B, char C){ if (n == 1) { printf("Movedisk %d from %c to %c \n",n,A,C); return; } TOH(n-1, A, C, B); printf("Movedisk %d 阅读全文
摘要:
产生随机的排列: permute()函数的功能是:打乱数组的顺序 Random()函数的功能是:产生一个0 —> n-1的随机数 swap()函数的功能是:交换数组里第i个和第j个元素的值//功能:产生随机的排列#include <stdio.h>#include<stdlib.h>//声明函数void permute(int array[], int n);int Random(int n);void swap(int A[], int i, int j);//Randomly permute the n values of arrayvoid permute( 阅读全文
摘要:
[互动百科]:递归算法 - 概述递归做为一种算法在程序设计语言中广泛应用.是指函数/过程/子程序在运行过程序中直接或间接调用自身而产生的重入现像.程序调用自身的编程技巧称为递归( recursion)。一个过程或函数在其定义或说明中又直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。用递归思想写出的程序往往十分简洁易懂。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当 阅读全文