一,定义
动态数组(显示数组):数组类型 [ ] 变量名=new 数组类型 [大小]
int[] a = new int[5];//定义一个有5个元素的整形数值
int[] a = { 1, 2, 3, 4, 5 };
二,访问
数组的访问:a[i] i:下标 (从0开始)
赋值:a[0]=1;
void Get()
{
int[] a = {1,2,3,4,5};
Console.WriteLine(a[0] + "\t" + a[3]);
}
a.Length:数组的长度
for (int i = 0; i <a.Length; i++)
{
a[i] = i + 1;
}
Console.WriteLine(a[0] + "\t" + a[3]);
// 未经处理的异常: System.IndexOutOfRangeException: 索引超出了数组界限。
静态数组(隐式数组)
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]);
}
}
三,排序
正序排列
int[] a = { 95, 74, 63, 87, 55 };
Array.Sort(a);
for (int i = 0; i < a.Length; i++)
{
Console.WriteLine(a[i]);
}
倒序排列
int[] a = { 95, 74, 63, 87, 55 };
Array.Sort(a);
for (int i = a.Length-1; i >=0 ; i--)
{
Console.WriteLine(a[i]);
}
冒泡排列
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]);
}
}
从小到大排序
int[] a = new int[10];
Console.WriteLine("请输入10个整数");
for (int i = 0; i < 10; i++)
{
int b = int.Parse(Console.ReadLine());
a[i] = b;
}
int num=0;
for (int i = 0; i < a.Length; i++)
{
for (int j = i+1; j < a.Length; j++)
{
if (a[i]>a[j])//大于号改为小于号即可从大到小排列
{
num = a[i];
a[i] = a[j];
a[j] = num;
}
}
}
foreach (var item in a)
{
Console.WriteLine(item);
}
插入排序
int[] b = { 10, 2, 7, 19, 15 };
//2 7 10 X(12) 15 19
//向数组里插入一个12
Array.Sort(b);//排序
//1,先定义一个长度比原来数值大一的数值
//2,把数组的值赋给c数组
//3,找到第一次比数值中值大的数值位置
//4,把数值中的数值从“i”开始先后移动一位
//5,把12放到“i”位置
int[] c = new int[b.Length + 1];
for (int i = 0; i < c.Length-1; i++)
{
c[i] = b[i];
}
int x = 12;
int j = 0;//第一次找到的位置
for (int i = 0; i < c.Length; i++)
{
if (c[i]>=x)
{
j = i;
break;
}
}
for (int i = c.Length-1; i >=j; i--)//倒序(--)
{
c[i] = c[i - 1];
}
c[j] = 12;
foreach (var item in c)
{
Console.WriteLine(item);
}
}