1.冒泡排序
将一个数组中的元素按照从小到大或者从大到小的顺序进行排序;
int[] nums = {9,8,7,6,5,4,3,2,1,0};//变成0,1,2,3,4,5,6,7,8,9,;
第一趟比较:8,7,6,5,4,3,2,1,0,9;交换9次
第二趟比较:7,6,5,4,3,2,1,0,8,9;交换8次
第三趟比较:6,5,4,3,2,1,0,7,8,9;交换7次;
第四题比较:5 4 3 2 1 0 6 7 8 9交换了6次
第五趟比较:4 3 2 1 0 5 6 7 8 9交换了5次
第六趟比较:3 2 1 0 4 5 6 7 8 9交换了4次
第七趟比较:2 1 o 3 4 5 6 7 8 9交换了3次
第八趟比较:1 0 2 3 4 5 6 7 8 9交换了2次
第九趟比较:0 1 2 3 4 5 6 7 8 9交换了1次
一般要遍历输出循环就在外面再来一个for循环
for (int k = 0; k < nums.Length-1; k++)
{
Console.Write(nums[k]);
}
Array.Sort(nums); 调用方法直接升序排序
Array.Reverse(nums);//对数组进行反转
可以先升序排序在反转 就是降序排序;
2.方法
解决冗余问题,是将一堆代码重用的机制
语法:
public static 返回值类型 方法名(参数列表 )
{
方法体
}
例如
public : 访问修饰符,公开的,公共的,哪都可以访问
static:静态的
返回值类型:如果不需要返回值,写void int必须要有返回值
方法名:Pascal 每个单词的首字母都大写,其余小写
参数列表:完成这个方法所必须要提供给这个方法的条件,如果没有参数小括号也不能省略方法写好后如果想要被执行,必须要在Main()函数中调用.
方法的调用语法
类名.方法名();
在某些情况下 类名可以省略:即和Main()在同一个类中
3.return
立即结束本次方法
在方法中返回要返回的值
4.///方法注释
/// <summary> /// 输入两个整数返回最大值 /// </summary> /// <param name="a">第一个整数</param> /// <param name="b">第二个整数</param> /// <returns>返回最大值</returns>
5.我们在Main()函数中,调用Test()函数
我们管Main()函数叫调用者,Test为被调用者;
如果被调用者想要得到调用者的值
有两种方式:
第一种:传递参数;int a = 4;
Test(a);第二种:使用静态字段来模拟全局变量
在program下
Public static int _number = 10;
6.如果调用者拿到被调用者的值
返回值 return a;
一定要声明一个变量来接收返回值
7.方法的特点
不管是形参还是实参都是在内存中开辟空间的
方法的功能一定要单一;
方法中最忌讳的就是提示用户输入;
10.三个高级参数:out ref params
out 参数 :
额外返回值//返回多个值的时候用到;在一个方法中可以返回多个不同类型的值
定义时: out int a ,out int b
调用 也要 加 out
ref参数:
能将一个变量带入一个方法中进行改变,改变完成后再将改变完成的值返回.
要求在方法外必须为其赋值 而方法内可以不赋值
params:
可变参数数组
将实参列表中跟可变参数数组类型一致的元素都处理为数组中的元素.
只能放在形参列表中的最后一个元素