我们知道,数组是大部分编程语言中都支持的一种数据类型。数组是包含若干相同类型的变量,这些变量都可以通过索引进行访问。数组中的变量称为元素,能够容纳元素的数量称为数组的长度。数组中的每一个元素都具有唯一的索引与其相对应,数组的索引从零开始。
a.一维数组:
一维数组是具有相同数据类型的一组数据的线性集合。一维数组的声明及初始化:
第一种:
int [] arr= new int [5];//数组中的每一个元素初始化为默认值0
第二种:
int [] arr= new int [5]{1,2,3,4,5}; //数组初始化的值为用户自定义的值
第三种:
string [] str ={"Sun","Mon","Tue","Wed"}; //初始化数组省略new 关键字和数组的长度
b.多维数组
多维数组是指可以用多个下标访问的数组,声明时,方括号内加逗号,有n个逗号,就是n+1维数组。以二维数组为例,二维数组的声明及初始化:
第一种:
int [,] arr =new int [3,2]; //数组中的每一个元素都初始化为0;
第二种:
int [,] arr= new int [3,2] { {1,2},{3,4},{5,6} }; //数组初始化为用户自定义的值,这种方式要注意:
数组大小必须与大括号中的元素个数相匹配。
c.不规则数组
前面讲的数组都是行和列固定的矩形方阵,下面要讲不规则数组,即不同行的元素个数完全不同,例如:
int [] [] a=new int [3] [];
a[0]=new int [5];
a[1]=new int [4];
a[2]=new int [3];
Console.WriteLine("输入数组的长度");
int a = Convert.ToInt32(Console.ReadLine());
int[] b = new int[a];
//数组的获取
for (int i = 0; i < a; i++)
{
Console.WriteLine("请输入第{0}个数组的值", i);
b[i] = Convert.ToInt16(Console.ReadLine());
}
或者简单粗暴一点的
Console.Write("输入长度");
int a;
a = Convert.ToInt32(Console.ReadLine());
int[] n = new int[a];
for (int i = 0; i < a; i++)
{
n[i] = Convert.ToInt32(Console.ReadLine());
}
数组的遍历是指将数组中的每一个元素输出,可以用for循环,也可以用foreach语句
第一种:for循环
int[] arr = new int[5] { 1, 2, 3, 4, 5 };
for (int i=0;i<arr.Length;i++)
{
Console.Write(arr[i]);
}
输出结果:12345
第二种:foreach语句
int[] arr = new int[5] { 1, 2, 3, 4, 5 };
foreach(int i in arr)
{
Console.Write(i);
}
两种输出结果是一样的
a.冒泡排序
最简单的一种排序法,假设长度为n的数组arr,要按从小到大的顺序排序数组中的元素,则冒泡排序的过程可以描述为:从数组中的第一个元素到最后一个为止,对数组中的两个相邻元素进行比较,若左边的大于右边的,则交换它俩的位置,这时数组最右端元素为该数组中元素最大值。
void BubbleSort(int arr[], int length)
{
for (int i = 0; i < length; i++)
{
for (int j = 0; j < length - i - 1; j++)
{
if (arr[j] > arr[j + 1])
{
int temp;
temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
}
}
}
}
还有几种排序,等小编再整理整理吧…