递归,冒泡,阶乘 的介绍
一、递归
什么是递归?
自身方法的调用,叫递归
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
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。