遞歸,冒泡,階乘 的介紹
成都創(chuàng)新互聯(lián)公司基于分布式IDC數(shù)據(jù)中心構(gòu)建的平臺為眾多戶提供服務(wù)器托管德陽 四川大帶寬租用 成都機(jī)柜租用 成都服務(wù)器租用。
一、遞歸
什么是遞歸?
自身方法的調(diào)用,叫遞歸
2. 遞歸的特點(diǎn)?
(1)遞歸方法一直會調(diào)用自己直到某些條件被滿足
(2)遞歸方法可有參數(shù),而它會把一些新的參數(shù)值傳遞給自己
案例1:0, 1, 1, 2, 3, 5, 8.............30
第一種遞歸呈現(xiàn)效果 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(); } 第二種遞歸呈現(xiàn)效果 //Main方法 static void Main(string[] args) ...{ Console.WriteLine(Process1(30)); Console.ReadLine(); } //用于計(jì)算值的方法 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方法中,調(diào)用這Fib方法進(jìn)行測試,你會發(fā)現(xiàn)和上面實(shí)現(xiàn)的效果一樣 !但是使用到遞歸性能要比第一種方法差
練習(xí)的題目:求 1 -2 +3 +-4+ 5- 6 + 7 - 8 + 9 的值
二 、 冒泡
什么是冒泡排序?
每一次排序的過程中總有一個(gè)最大的值被移動(dòng)到后面,值小的就像水泡一樣浮到水面。
2. 冒泡排序的特點(diǎn)?
常用于比較
案例:對3,1, 4, 2, 5 ,7 進(jìn)行由小到大進(jìn)行排序,比較
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]); }
練習(xí)的題目:將下這7個(gè)數(shù)由小到大排序
2, 4, 6, 7,9, 10,8
三、 階乘
什么是階乘?
求數(shù)的乘積
階乘的算法?
如: 求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));
練習(xí)的題目: 求36的階乘
36!=1*2*3*……*34*35*36