• C# 编程--数组


    数组

    可以帮我我们一次声明存储多个相同类型的变量。
    用来解决同一类大量数据在内存存储和运算的功能
    特点:连续、同一类数据
    数组定义==>赋值==>取值
        定义:
            int[] nums0 = new int[10];//10是数组的长度
            int[] nums1 = { 1, 2, 3, 4, 5, 6, 7 };
            int[] nums2 = new int[] { 1, 2, 3 };//不推荐 比较麻烦
            int[] nums3=new int[]{1,2,3,4,5,6,};//不推荐
        赋值:数组名[下标]=值;
        取值:数组名[下标数值] //下标从0开始,最大下标要比数组长度小1。
    数组的好处:
                1、对于大量数据来说,保存的时候定义一个数组即可解决
                2、用循环来控制数组下标,可以对数组进行批量操作
    定义:指定类型、指定长度、指定名称
    分类:一维数组、二维数组、多维数组

    一维数组:豆角

    语法:

            数组类型[] 数组名 = new 数组类型 [数组长度];

            注意:在内存中开辟连续的n块空间,每一块称为数组的元素,如果想要访问数组中的某一块元素,需要通过这个元素的下标或者索引去访问。(下标{0~m},有 m-1 个元素)

            数组的赋值与取值

            数组长度一旦固定,就不能再被改变。

            保存多个值;几乎任意类型都可以声明数组; int[] nums = new int[3];int[] nums = {5,3,8};
            in[]nums=new int[3]{1,2,3};int[]nums=new int[]{2,3,5};
            数组的声明:以上四种
            int[] nums = new int[3]{5,3,8}//个数和声明数必须一致
            int[] nums = new int[5]{5,3,8}//错误
            int[] nums = new int[]{5,3,8}//正确,可以省略数组个字
            使用索引器访问指定编号位置的元素,访问数组元素:nums[0]、nums[1]。索引从0开始。取到的元素的类型就是数组元素的类型。还可以对数组元素进行赋值

    #region 数组基础学习
                int[] a = new int[5];
                a[0] = 1;
                a[1] = 2;
                a[2] = 3;
                a[3] = 4;
                a[4] = 5;
                Console.WriteLine(a[3]);
    
    
    
                //数组类型[] 数组名 = new 数组类型[数组长度];
                int[] nums = new int[10];//初值是"" 空
    
                string[] str = new string[10];//null与" "的区别  string类型默认数组的值为null null没在内存开空间," ":空 在内存开了空间
                bool[] bools = new bool[10];//初值为false
    
    
    
    
                nums[0] = 1;
                nums[1] = 2;
                nums[2] = 3;
                nums[6] = 10;//下标为6的元素 赋值为10,这是数组中的第7个元素(下标从0开始 所有它的下标为6)
    
                已知循环次数 用for循环给数组赋值
                for (int i = 0; i < nums.Length; i++)
                {
                    nums[i] = i;
                }
                //再通过一个循环对数组取值
                for (int i = 0; i < nums.Length; i++)
                {
                    Console.WriteLine(nums[i]);
                }
    
    
                //声明方式:推荐前两种方式
                int[] nums0 = new int[10];
                int[] nums1 = { 1, 2, 3, 4, 5, 6, 7 };
    
                int[] nums2 = new int[] { 1, 2, 3 };//不推荐 比较麻烦
                int[] nums3=new int[]{1,2,3,4,5,6,}; 
                #endregion

            常见问题:求平均值,求最大值,求和,排序
            Array排序 和反序(例:)

    #region Array
                int[] nums = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
                Array.Sort(nums);//只能针对数组做一个升序的排序
                Array.Reverse(nums);//对数组进行反转。跟Array.Sort配合可以实现降序
    
                //for (int i = 0; i < nums.Length-1; i++)
                //{
                //    for (int j = 0; j < nums.Length-1-i; j++)
                //    {
                //        if (nums[j]>nums[j+1])//改成小于:降序
                //        {
                //            int temp = nums[j];
                //            nums[j] = nums[j + 1];
                //            nums[j + 1] = temp;
                //        }
                //    }
                //}
                for (int i = 0; i < nums.Length; i++)
                {
                    Console.WriteLine(nums[i]);
                }
                Console.ReadKey();
                #endregion


            冒泡排序
            将一个数组中的元素按照从大到小或者从小到大的顺序进行排序
            int[] nums={9,8,7,6,5,4,3,2,1,0}

            趟数和次数:
            每趟出来一个最大(最小)值,

            趟数:n-1 趟
            次数:n-趟数

              #region 冒泡排序
                int[] a = { 423, 234, 112, 343, 653, 231, 452 };
                //输出数组中的元素:输出为排序前的样子
                Console.WriteLine("原数组元素:");
                for (int i = 0; i < a.Length; i++)
                {
                    Console.WriteLine(a[i]);
                }
    
                //用双层for循环做大小排序并输出(例如:从小到大)
                Console.WriteLine("按照从小到大排序:");
                for (int i = 1; i <= a.Length; i++)//外层比较多少趟
                {
                    for (int j = 1; j <= a.Length - i; j++)//内层比较多少次
                    {
                        if (a[j - 1] > a[j])//如果第一个数组元素大于第二个数组元素就把
                        {
                            int temp = a[j - 1];
                            a[j - 1] = a[j];
                            a[j] = temp;
                        }
                    }
                }
                for (int i = 0; i < a.Length; i++)//把数组中已经排好的数组输出
                {
                    Console.WriteLine(a[i]);
                }
                #endregion

            二分查询
            前提:数组必须是有序的。
     

    二维数组

            语法:······略······
            相当于一个表格
            可以做简单推箱子

    多维数组


                 ······略······

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    博文来源广泛,如原作者认为我侵犯知识产权,请尽快给我发邮件 664507902@qq.com联系,我将以第一时间删除相关内容。

  • 相关阅读:
    使用Spring的MailSender发送邮件
    使用Spring的MailSender发送邮件
    C# List源码分析(二)
    EasyUI闪屏,EasyUI页面加载提示:原理+代码+效果图
    EasyUI闪屏,EasyUI页面加载提示:原理+代码+效果图
    Android Studio快捷键指南(本文持续更新)
    EventBus3.0使用总结
    hihoCoder #1054 滑动解锁
    hihoCoder #1069 最近公共祖先·三
    hdu 4411 Arrest
  • 原文地址:https://www.cnblogs.com/ooip/p/4493642.html
  • Copyright © 2020-2023  润新知