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]);
}
}
}
}