跟小D每日学口语

文章分类 -  Algorithm

C语言中自定义函数中递归调用是怎样工作的?
摘要:这个程序时实现N的阶乘,但始终不明白ff();函数中else…两句的工作原理。请具体解释下面//两句。long ff(int n){long f;if(n<0) printf("n<0,input error");else if(n==0||n==1) f=1; //为什么f=1,就不再继续递归调用?else f=ff(n-1)*n;//这一步到底是怎么工作的?return... 阅读全文

posted @ 2010-08-04 21:13 简简单单幸福 阅读(2420) 评论(1) 推荐(0)

输出一个字符串的所有排列组合,有重复字符
摘要:static void Main(string[] args) { string str2 = ""; Method("1234", str2); Console.WriteLine(counter); Console.ReadKey(); } static void Method(string str,string str2) { if (str == null) return; if (str... 阅读全文

posted @ 2010-08-04 17:41 简简单单幸福 阅读(3697) 评论(0) 推荐(0)

C#反转单向链表
摘要:classClass1{[STAThread]staticvoidMain(string[]args){//初始化链表LineNotestartnote=newLineNote("1");LineNotenote=startnote;for(inti=2;i<=5;i++){note.Next=newLineNote(i.ToString());note=note.Next;}note=st... 阅读全文

posted @ 2010-08-04 15:33 简简单单幸福 阅读(535) 评论(0) 推荐(0)

快速排序的基本思想
摘要:快速排序是对冒泡排序的一种改进。它的基本思想是:通过一躺排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一不部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 假设要排序的数组是A[1]……A[N],首先任意选取一个数据(通常选用第一个数据)作为关键数据,然后将所有比它的数都放到它前... 阅读全文

posted @ 2010-08-03 21:50 简简单单幸福 阅读(1569) 评论(0) 推荐(0)

选择排序
摘要:选择排序选择排序是通过每一趟排序过程中从待排序记录中选择出关键字最小(大)的记录,将其依次放在数据表的最前或最后端的方法来实现整个数据表的有序排列。本节将介绍选择排序方法中最简单且最常用的简单选择排序。选择排序基本思想 第一趟排序在所有待排序的n个记录中选出关键字最小的记录,将它与数据表中的第一个记录交换位置,使关键字最小的记录处于数据表的最前端;第二趟在剩下的n-1个记录中再选出关键字最小的记录... 阅读全文

posted @ 2009-11-06 13:51 简简单单幸福 阅读(7071) 评论(0) 推荐(1)

冒泡法排序
摘要:起泡法排序的排序过程如下,首先将第一个记录与第二个记录进行比较,若为逆序(R[1]>R[2]),则将两个记录交换,然后比较第二个记录和第三个记录。依次类推,直到第n-1个记录完成比较为止。上述过程称为第一次起泡排序过程,其结果使得最大的记录被放在了最后一个记录的位置上。然后进行第二次起泡排序,对前n-1个记录进行同样的操作将次大的记录放在第n-1个记录的位置上。由于此算法中小的数据像水中的气... 阅读全文

posted @ 2009-09-28 13:30 简简单单幸福 阅读(305) 评论(0) 推荐(0)