数组以及冒泡排序


数组

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);   //3
            for (int i = 0; i < intArr2.Length; i++)
            {
                Console.WriteLine("第{0}个数为:{1}", i, intArr2[i]);
            }
            Console.WriteLine("数组 intArr4 的长度为:{0}", intArr2.Length);   //3
            for (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>




原文地址:https://www.cnblogs.com/qigang/p/3841939.html