数组
1、概念:可以帮我一次声明多个同类型的变量,这些变量再内存中是连续存储的。
2、声明语法:数据类型[] 数组名 = new 数据类型[数组长度]
数组长度:一次要声明的同类型的变量个数。是在定义这个数组的时候就确定了,或者是用初始化声明的时候,初始化的值就确定了,以后是不可变的
eg:int[] score = new int[5];声明了一个长度为5的数组,数组名为score,通俗点说,就是声明了一个数组,里面包含了5个int类型的变量,数组名叫score,里面的5个int类型的变量叫做:数组元素。
3、数组的访问:通过下标(索引)来访问数组。数组名[编号]。编号是从0开始的,最后一个编号是数组的个数减一
4、初始化数组:int类型的数组一旦声明,里面的每一个元素被初始化成0。通过快速监视发现,string数组的默认初始化为null,但是还是能够输出
5、数组长度:通过 数组名.Length 可以获得数组的长度,也就是数组的个数
6、遍历数组:依次访问数组或者集合中的每一个元素,并且每一个元素只是被访问一次
7、直接赋值方式声明数组:int[] nums = {5,3,8}; 声明一个长度为3的数组,每一个元素的值分别为:5,3,8,元素的值之间用逗号隔开。外层直接用以大括号
int[] nums = new int[3]{5,3,8};这种方式声明中大括号中的数据个数必须和数组长度一样,否则报错,故最好不要用这种方式来声明数组
int[] nums = new int[5]{5,3,8}; //error 数组个数与长度不匹配
int[] nums = new int[]{5,3,8};//OK,可以声明长度
string[] strArr = { "zhangshan", "lisi", "wangwu" };
<span style="font-size:18px;"> int[] intArr = new int[5];int[] intArr2 = new int[] { 5, 3, 8 };//错误 2 应输入长度为“5”的数组初始值 //int[] intArr3 = new int[5] { 5, 3, 8 };int[] intArr4 = { 5, 3, 8 };//给数组赋值for (int i = 0; i < intArr.Length; i++){Console.WriteLine("请输入第{0}个数:", i);intArr[i] = Convert.ToInt32(Console.ReadLine());}//遍历数组for (int i = 0; i < intArr.Length; i++){Console.WriteLine("第{0}个数为:{1}", i, intArr[i]);}Console.WriteLine("数组 intArr2 的长度为:{0}", intArr2.Length); //3for (int i = 0; i < intArr2.Length; i++){Console.WriteLine("第{0}个数为:{1}", i, intArr2[i]);}Console.WriteLine("数组 intArr4 的长度为:{0}", intArr2.Length); //3for (int i = 0; i < intArr4.Length; i++){Console.WriteLine("第{0}个数为:{1}", i, intArr4[i]);}string[] strArr = { "zhangshan", "lisi", "wangwu" };for (int i = 0; i < strArr.Length; i++){Console.WriteLine(strArr[i]);}</span>
冒泡排序
让数组中的元素两两比较(第i个和第i+1个进行比较),经过n(i-1)遍两两比较,数组中的元素能按照我们预期的规律进行排列。两两比较的时候,如果是从大到小排列则用小于号,如果是从小到大排列则用大于号。
<span style="font-size:18px;"> //源数组int[] arr = { 3, 56, 23, 67, 11, 13, 4, 14, 67 };</span>
从小到大的冒泡排序:
<span style="font-size:18px;">//从小到大冒泡排序//控制比较的趟数for (int i = 0; i < arr.Length-1; i++){//控制每一趟比较的次数for (int j = 0; j < arr.Length - 1 - i; j++){if (arr[j] > arr[j + 1]){int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}Console.WriteLine("从小到大排序结果为:");for (int i = 0; i < arr.Length; i++){Console.Write(arr[i] + ",");}</span>
从大到小的冒泡排序:
<span style="font-size:18px;">//从大到小排序//控制趟数for (int i = 0; i < arr.Length-1; i++){//控制每一趟比较的次数for (int j = 0; j < arr.Length-1-i; j++){if (arr[j] < arr[j + 1]){int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}Console.WriteLine("");Console.WriteLine("从大到小排序结果为:");for (int i = 0; i < arr.Length; i++){Console.Write(arr[i] + ",");}</span>