黑马程序员——冒泡排序、方法、参数、返回值

时间:2021-11-20 12:07:01

------- Windows Phone 7手机开发.Net培训、期待与您交流! -------

Console.Clear(); //清屏

有一款反编译.net程序的软件“reflector”,很牛。

 

冒泡排序:

让数组中的元素两两比较(第i个与第i+1个比较),经过n(i-1)遍两两比较,数组中的元素能按照我们预期的规律排序。

要从大到小排序,我们进行两两比较的时候用,

 

10,20,30,40,50,60,70 原始数据7个元素。

20,30,40,50,60,70,10 1趟 比较6次

30,40,50,60,70,20,10 第2趟 比较5次

40,50,60,70,30,20,10 第3趟 比较4次

。。。。。

70,60,50,40,30,20,10 第6趟 比较1次

 

也就是n 个数需要排n-1趟。

第t趟比较的次数为:n-t次

i=0 第一趟

i=1 第二趟

趟数:i+1=t

 

int [] scores = {18,54,65,87,96,45,12,35,84,56}

for (int i=0;i<scores.Length-1;i++)  //控制比较的趟数,循环一次表示比较了1趟

{

for(int j=0;j<scores;j++)

{

  if(scores[j]<scores[j+1]) //从大到小排序,改成大于号就成从小到大排序。

  {

     int temp=scores[j];

     scores[j]=scores[j+1];

     scores[j+1]=temp;

  }

}
}

 

方法(函数)

方法就是将一堆代码进行重用的一种机制。方法就是一段代码,这段代码可能有输入的值(参数),可能会返回值。

定义方法的语法:

[访问修饰符][static] 返回值类型 方法名([参数])

{
方法体;

}

l  命名规则:方法名开头大写,参数名开头小写,参数名、变量名要有意义。

l  方法的调用,对于静态方法(由static修饰),如果在同一个类中,直接写名字调用就行了。

l  return可以立即退出方法。

 

注意:

1一般情况下,方法要定义在类中。

2如果方法没有返回值,则返回值类型写void。

3如果没有参数,()不能省略。

 

方法的调用:如果是静态方法(由static修饰的)则使用类名.方法名();

在类中调用本类的方法,可以只写方法名();

 

参数

变量的作用域:

在方法中定义的变量称为局部变量,其作用域是定义所在的语句块{},出了语句块就释放掉了。

 

当被调用者想得到调用者方法中的变量时,则可以让调用者把这参数的形参传给调用者。

注意:如果一个方法一旦有参数,那么调用者就必须传参数,并且参数的数量和类型必须一致。

 

string s = “123”

//int a = Convert.ToInt32(s);

int a = int.Prase(s);

double b = double.Prase(s);

 

 

返回值:

当调用者想访问我们方法中的变量时,可以通过返回值返回。

例如:int a= Convert.ToInt32(“123”);

为什么方法前面能够定义一个变量收到方法的值,是因为在方法中使用了返回值。

只要在方法中返回了值,那么在调用方法中,前面就应该用一个变量来接收方法的返回值。

注意:一个方法只能有一个返回值。//也可以返回一个数组。

一旦一个方法有返回值,那么在这个方法体中,就必须通过return语句返回一个值,并且这个值要与返回值类型时相同的。

语法:

return 值;

 

 

一个变量一旦定义在方法外,类的里面就叫做类的字段。这个变量就可以被本类的所有方法访问。但是要注意,静态方法只能访问静态字段。

由const定义的常量不能定义静态的。