
递归与分治 (算法设计与分析)
荼蘼_Claire_w
这个作者很懒,什么都没留下…
展开
-
阶乘与兔子问题
//1、阶乘函数 // n!=1 当n==0时,n*(n-1)! 当n>0. /*#include int factorial (int n) { if (0==n) return 1; else return n*factorial(n-1); } void main () { int n; scanf("%d",&n); printf原创 2017-03-14 20:28:04 · 356 阅读 · 0 评论 -
文件操作
//文件操作 //1、fopen() = file open () //2、创建一个文件 //3、文件操作流程 #include void main () { FILE *fp; //定义了一个文件类型的指针 fp = fopen ("测试.txt","w") ; //第一个参数为文件名字,参数2表示建立文件 /* fp=fopen("测试99.txt","原创 2017-03-31 21:09:07 · 261 阅读 · 0 评论 -
快速排序
快速排序(Quicksort)是对冒泡排序的一种改进。 快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 C语言版本原创 2017-03-31 21:40:02 · 269 阅读 · 0 评论 -
关于排序的几种算法
直接插入排序数组从1开始 #include #define N 10 void InsertSort(int r[],int n) { for ( int i=2;i<=n;++i) if (r[i]<r[i-1]) { r[0]=r[i]; r[i]=r[i-1]; for (int j=i-2;r[0]<r[j];--j)原创 2017-03-31 21:48:36 · 355 阅读 · 0 评论 -
排列问题
//排列问题(Permutation) //集合X中的元素的全排列记为Perm(X) /*Password.cpp :定义控制台应用程序的入口点 全排列是将一组数按一定顺序进行排列,如果这组数有n个,那么全排列数为n!个。 现以{1,2,3,4,5}为例说明如何编写全排列的递归算法。 1、首先看最后两个数4,5。他们的全排列为4 5和5 4,即以4开头的5的全排列和以5开头的4的全排列。原创 2017-03-15 19:33:34 · 726 阅读 · 0 评论 -
Hanoi塔问题
//Hanoi塔问题 /* 当n=1时,问题比较简单。此时只要将编号为1的圆盘从塔座a直接移至塔座b即可。 当n>1时,需要塔座c作为辅助塔座。此时要设法将n-1个较小的圆盘依照移动规则从塔座a移至塔座c上,然后, 将剩下的最大圆盘从塔座a移至塔座b上,最后再设法将n-1个较小圆盘依照移动规则从塔座c移至塔座b上。由此可见, n个圆盘的移动问题就可分解为两次n-1个圆盘的移动问题。 当原创 2017-03-15 20:27:52 · 478 阅读 · 0 评论 -
实现字符串循环右移n 位与左移n位(不建立数组,直接用指针)
编写一个函数,作用是把一个 char 组成的字符串循环 右移 n 个。 比如原来是“abcdefghi” 如果 n=2,移位后应该是“hiabcdefgh” 左移n个 比如原来是“abcdefghi” 如果 n=2,移位后应该是“cdefghiab” 函数头是这样的: //pStr 是指向以'\0'结尾的字符串的指针 //steps 是要求移动的 n void Loop转载 2017-07-18 20:52:07 · 2018 阅读 · 0 评论