C#基础解析之Ⅳ(数组和排序)
今天和大家一起来讨论一下C#中的数组和排序。首先,先感谢一下大家的讨论和关注,这无疑是对我本人的最大支持,有了讨论我们才可以发现问题,解决问题,这样我们就可以不断的进步,不断的提升自己。在这里我还想多说两句,在之前的留言中我看到有说我写的文章比较浅,我想和大家解释一下,本人所写的文章都是一些基础中的基础,比较适合新人来研究和学习(本人也是个新手),希望老鸟和高手们给予正确的指点和帮助,因为我们都是一个台阶一个台阶爬上来的。。。
好的!我们来进入今天的正题-----数组和排序。今天的内容相对而言不是很多,但是有些东西是比较重要的比如说:冒泡排序,冒泡排序好像在面试的时候问的挺多的!呵呵!还是先来看一下一维数组吧,什么叫数组: 数组就是指具有相同名称和类型的一组变量,数组中的每个变量称为数组元素。由于有了数组,可以用相同名字引用一系列变量,并用索引号(下标)来识别它们。在许多场合中,我们使用数组可以缩短和简化程序。
还是老样子,我们用例子来说话:
1 class Program
2 {
3 static void Main(string[] args)
4 {
5 string name1 = "人族联盟";
6 string name2 = "兽人部落";
7 string name3 = "不死亡灵";
8 string name4 = "暗夜精灵";
9 Console.WriteLine("第一位玩家所用种族:{0}", name1);
10 Console.WriteLine("第二位玩家所用种族:{0}", name2);
11 Console.WriteLine("第三位玩家所用种族:{0}", name3);
12 Console.WriteLine("第四位玩家所用种族:{0}", name4);
13 Console.ReadKey();
14 }
15 }
运行结果:
大家一看就能看出上面这些代码比较麻烦而且也比较啰嗦,我们用数组写一下:
1 class Program
2 {
3 static void Main(string[] args)
4 {
5 //声明有4个值得数组
6 string[] name = new string[4] { "人族联盟", "兽人部落", "不死亡灵", "暗夜精灵" };
7 for(int i=0;i<4;i++)//循环4次
8 {
9 //输出每个玩家
10 Console.WriteLine("第{0}位玩家所用种族:{1}",i+1,name[i]);
11 }
12 Console.ReadKey();
13 }
14 }
运行结果:
从例子中我们就可以明显的看出来用数组的好处,它不仅能够大大减少代码的数量,而且能够通过循环来操作更多的值,这样就可以让我们写出更漂亮的代码了。
为了更进一步了解数组我们还是看一下它的语法结构吧:
数组类型[] 数组名=new 数据类型[数组长度];
上面这个是创建数组,举个例子:int[] num =new int [5];//创建一个容纳5个整形值得数组
其中new是关键字,就是在内存里给数组分配了保存值得空间。数组里面的值(元素)都必须是同一种类型。而且数组长度是表示这个数组里最多能容纳多少值(元素)。我们也可以给数组初始化比如:int [] num =new int [5]{12,32,24,55,13,33};这里面数组有几个值,那么数组长度就是多少。如果数组长度是5,而数组中放入了第6个值,那么程序就会报错,这个也就是我们所说的数组越界。
数组的长度我们有必要简单的说一下,一般数组的长度表示为:数组名.Length,这样我们就可以得到数组的长度了。来看个例子:
1 class Program
2 {
3 static void Main(string[] args)
4 {
5 //初始化一个字符串数组
6 string[] name = { "人族联盟", "兽人部落", "不死亡灵", "暗夜精灵" };
7 //循环从0开始,代表下标www.zzzyk.com
8 for (int i = 0; i < name.Length; i++)//(^o^)注意啦!Length在这里!
9 {
10 //判断这个数组的一个元素的值是否是兽人部落
11 if (name[i] == "兽人部落")
12 {
13 Console.WriteLine("第{0}个是{1}。",i+1,name[i]);
14 break;
15 }
16 }
17 Console.ReadKey();
18 }
19 }
运行结果:
上面这个就是Length的用法,Length就是用来得到一个数字的长度,在许多情况下我们都是不可能知道数组的长度的,所以有了数组名.Length就方便多了。
接下来我们看一下排序,对于排序我想大家第一感觉想到的就是冒泡排序了,好的接下来我们就看一下冒泡排序,首先来了解一下冒泡排序的概念(概念来自百度文库):
依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到最大数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最大数。如此下去,直至最终完成排序。
由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。
以上就是冒泡排序的概念,概念毕竟是概念,我感觉没有例子说明的更清楚些;好的,我们还是用例子来说话:
1 class Program
2 {
补充:软件开发 , C# ,