C#数组排序

来源:百度知道 编辑:UC知道 时间:2024/07/01 07:43:21
static void Main(string[] args)
{
int[] arr1 = new int[] { 12,4,22,5,9,36,7,14,2,18};
foreach (int n in arr1)
Console.Write(n+" ");
Console.WriteLine();
int j, temp;
for (int i = 0; i < arr1.Length - 1; i++)
{
j = i + 1;
aa:
if (arr1[i] > arr1[j])
{
temp=arr1[i];
arr1[i]=arr1[j];
arr1[j] = temp;
goto aa;
}
else
if (j < arr1.Length - 1)
{
j++;
goto aa;
}
}
foreach (int n in arr1)
Console.Write(n+" ");

这是一个用冒泡排序的算法:

解释如下:

//main主方法
static void Main(string[] args)
{
//定义了一个叫arr1数组的变量并赋值
int[] arr1 = new int[] { 12,4,22,5,9,36,7,14,2,18};
//遍历数组中的所有元素;跟for循环差不多.
foreach (int n in arr1)
//循环打印出元素
Console.Write(n+" ");
//打印一个空行,也就是换行;
Console.WriteLine();
//定义两个变量;
int j, temp;
//遍历数组中的元素,lengt-1是因为数组的下标从0开始,。所以长度必须减1。
for (int i = 0; i < arr1.Length - 1; i++)
{
//为j赋值;
j = i + 1;
aa:
//如果第一个与第二个元素相比较,。如果第一个数大于第一个返回true;

if (arr1[i] > arr1[j])
{
//一下几句把两个值交换过来.。
temp=arr1[i];
arr1[i]=arr1[j];
arr1[j] = temp;
//跳出aa;
goto aa;

}
else
//否则执行这里;
if (j < arr1.Length - 1)
{
j++;
goto aa;
}
}
//然后遍历;所有的元素;输出,此时的值的顺序发生改变.。
foreach (int n in arr1)
Console.Write(n+" ");
Console.WriteLine();
}