递归,冒泡,阶乘 的介绍
成都创新互联公司基于分布式IDC数据中心构建的平台为众多户提供服务器托管德阳 四川大带宽租用 成都机柜租用 成都服务器租用。
一、递归
什么是递归?
自身方法的调用,叫递归
2. 递归的特点?
(1)递归方法一直会调用自己直到某些条件被满足
(2)递归方法可有参数,而它会把一些新的参数值传递给自己
案例1:0, 1, 1, 2, 3, 5, 8.............30
第一种递归呈现效果 static void Main(string[] args) ...{ int[] num=new int[30]; num[0]=1; num[1]=1; int first=num[0]; int second=num[1]; for (int i = 2; i < num.Length; i++) ...{ num[i] = first + second; first = second; second = num[i]; } Console.WriteLine(num[29]); Console.ReadLine(); } 第二种递归呈现效果 //Main方法 static void Main(string[] args) ...{ Console.WriteLine(Process1(30)); Console.ReadLine(); } //用于计算值的方法 public static int Process1(int i) ...{ if (i == 0) return 0; if (i == 1) return 1; else return Process1(i - 1) + Process1(i - 2); } 在Main方法中,调用这Fib方法进行测试,你会发现和上面实现的效果一样 !但是使用到递归性能要比第一种方法差
练习的题目:求 1 -2 +3 +-4+ 5- 6 + 7 - 8 + 9 的值
二 、 冒泡
什么是冒泡排序?
每一次排序的过程中总有一个最大的值被移动到后面,值小的就像水泡一样浮到水面。
2. 冒泡排序的特点?
常用于比较
案例:对3,1, 4, 2, 5 ,7 进行由小到大进行排序,比较
int[] a={3,1,4,2,5}; int length=a.length; for (int i = 0; i < length; i++) { for (int j = 1; j < length-i; j++) { if(a[j-1]>a[j]){ int temp=a[j]; a[j]=a[j-1]; a[j-1]=temp; } } } for (int i = 0; i < a.length; i++) { System.out.println(a[i]); }
练习的题目:将下这7个数由小到大排序
2, 4, 6, 7,9, 10,8
三、 阶乘
什么是阶乘?
求数的乘积
阶乘的算法?
如: 求5的阶乘
5!=5 * 4 * 3 * 2 * 1
案例:
public int digui(int i) { if(i>1){ return i*digui(i-1); }else{ return i; } } System.out.println("求5的阶乘:"+digui(5));
练习的题目: 求36的阶乘
36!=1*2*3*……*34*35*36