数组与排序

1.数组定义

动态数组(显示数组):数据类型[]  变量名=new 数据类型[大小];

int[] a=new int[30000];

2、访问

数组的访问:a[i]   i:下标(从0开始)

赋值:a[0]=1;

例:

void Get()

        {

            int[] a = new int[5];//定义一个有5个元素的整形数值

            a[0] = 1;

            a[1] = 2;

            a[2] = 3;

            a[3] = 4;

            a[4] = 5;

            Console.WriteLine(a[0] + "\t" + a[3]);

        }

        void Get2()

        {

            int[] a = new int[5];

            //for (int i = 0; i <5; i++)

            //for (int i = 0; i <= 4; i++)

            for (int i = 0; i <a.Length; i++)//a.Length:数组的长度

            {

                a[i] = i + 1;

            }

            Console.WriteLine(a[0] + "\t" + a[3]);

        }

        static void Main(string[] args)

        {

            Test15 t = new Test15();

            t.Get2();

        }

静态数组(隐式数组)

int[] x={1,2,3,4,5};

void Get3()

        {

            //把a数组的值倒序放入b数组

            int[] a = { 1, 2, 3, 4, 5 };

            int[] b = new int[5];

            for (int i = a.Length-1; i >= 0; i--)//循环赋值

            {

                b[4-i] = a[i];//i:4 3 2 1 0

            }

            for (int i = 0; i < b.Length; i++)//循环输出

            {

                Console.WriteLine(b[i]);

            }

        }

3、排序

Array.Sort()

//把数据正序排列

            int[] a = { 95, 74, 63, 87, 55 };

            Array.Sort(a);

            for (int i = 0; i < a.Length; i++)

            {

                Console.WriteLine(a[i]);

            }

            //把数据倒序排列

            for (int i = a.Length-1; i >=0 ; i--)

            {

                Console.WriteLine(a[i]);

         }

void Get5()

        {

            //冒泡排序

            int[] a = { 95, 74, 63, 87, 55 };

            int t;

            for (int i = 0; i < a.Length; i++)

            {

                for (int j = i; j < a.Length; j++)

                {

                    if (a[i] > a[j])//由小到大

                    {

                        t = a[i];

                        a[i] = a[j];

                        a[j] = t;

                    }

                }

            }

            for (int i = 0; i < a.Length; i++)

            {

                Console.WriteLine(a[i]);

            }

       }

4、求最大值

void Get6()

        {

            //求最高分

            int[] a = { 45, 74, 63, 87, 55 };

            //1、假设数组中的一个数为最高分

            int max = a[2];

            //2、循环数组,找出比max还大的分,把这个分赋值给max

            for (int i = 0; i < a.Length; i++)

            {

                if (a[i] > max)

                {

                    max = a[i];

                }

            }

            Console.WriteLine(max);

        }

插入排序

有一组学员的成绩{99,85,82,63, 60},要增加一个学员的成绩,将它插入成绩序列,并保持降序

65

分析:

  1. 找到第一次比这个数据小的数,此数就是要插入数据的位置i(判断这个数据),找到后退出循环
  2. 从i的位置向后,把后面的数据依次向后移动
  3. 把i这个位置赋给要插入的数据

void Insert()//插入排序

        {

            int[] a = { 99, 85, 82, 63, 60,0 };

            int b=65,index=0;

            for (int i = 0; i < a.Length; i++)

            {

                if (b >= a[i])

                {

                    index = i;

                    break;

                }

            }

            //99,85,82,63, 60   []

            //99,85,82,[i] ,63, 60

            //99,85,82,[index] ,63(i), 60

            for (int i = a.Length - 1; i >= index + 1; i--)

            {

                a[i] = a[i - 1];

            }

            a[index] = b;

            for (int i = 0; i < a.Length; i++)

            {

                Console.WriteLine(a[i]);

            }

        }

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值