数组基本知识点

1.1定义:动态数组(显示数组):数组类型[ ] 数组名=new 数组类型[ 大小];

               静态数组(隐式数组): 数组类型[ ] 数组名={变量,变量} 

1.2访问数组里的变量

数组名[i] :i为下标(下标从零开始),访问时可以访问数组任意位置的变量;数组下表必须小于数组个数

  1.3数组里可以存放任何数据

1.4数组排序

 

    1.4.1冒泡排序

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _10._11排序
{
    class Program
    {
        static void Main(string[] args)//主函数
        {
            Maopao(5, 6, 4, 7, 3, 8, 2, 9, 1, 0);
        }
        //1.参数数组:参数(方法参数有params修饰的,实参为数组里面的数据)
        //例:在主函数里调用方法 :Maopao(1,2,3,4,6,8,9,3);
        //     被调用的方法 :public void Maopao(params int[] array){}
        //2.数组参数:数组(实参以数组方式传入)
        //例:在主函数里调用方法 :Maopao(new int[]{1,2,3,4,6,8,9,3});
        //     被调用的方法 :public void Maopao(params int[] array){}
        static void Maopao(params int[] array)//方法
        {
            //第一个for用来表示次数,第一次把数组里最大的放后面
            for (int i = 0; i < array.Length; i++)//array.Length是表示数组的大小(长度)
            {
                //第二for把最大的不断往后最后
                for (int j = 0; j <array.Length-1;j++ )//j-1是防止j+1越界
                {
                    if (array[j + 1] < array[j])//如果当前位置的数大于后一位的数,就进入if语句,交换值
                    {
                        int temp = array[j];
                        array[j] = array[j + 1];
                        array[j + 1] = temp;
                    }
                    //由于j++,不断把大的放后面,就会把最大的放最后面了
                }
            }
            for (int i = 0; i <array.Length; i++)
            {
                Console.WriteLine(array[i]);
            }
        }
    }
}

 1.4.2插入排序

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _10._11排序
{
    class Program
    {
        static void Main(string[] args)//主函数
        {
            InserSort(1, 6, 3, 2, 5, 9, 7, 8);
        }
       public static void InserSort(params int[] array)
       {
            for (int i = 0; i <array.Length; i++)
            {
                int sum = array[i];
                bool iskong = false;
                //下面这个for是与前面的数比较,如果前面有哪个数比sum小就放这个数的后面,而原来这个数后面的那些数都往后挪一个位置
                for (int j = i-1; j >=0; j--)
                {
                    //j=i-1 ==> i=j+1,i这个位置是sum,此时空着,可以让前面比sum大的数往后移动一个位置
                    if (array[j] > sum)
                    {
                        array[j + 1] = array[j];
                    }
                    //在前面找到了比sum小的数,原先在这个数后面的数都与sum比较了,都往后移动一个位置了,所以sum放在j+1的位置
                    else
                    {
                        array[j + 1] = sum;
                        iskong = true;
                        break;
                    }
                }
                //sum的位置是i,i的前面没有一个比sum小的,而比sum大都往后移动一个,到最后就剩下0位子了
                if (iskong == false)
                {
                    array[0] = sum;
                }
            }
            for (int i = 0; i < array.Length; i++)
            {
                Console.WriteLine(array[i]);
            }
       }
        
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值