C#数组排序
staticvoidMain(string[]args){int[]arr1=newint[]{12,4,22,5,9,36,7,14,2,18};foreach(int...
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+" ");
Console.WriteLine();
}
看不懂,能详细解析下吗? 展开
{
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+" ");
Console.WriteLine();
}
看不懂,能详细解析下吗? 展开
展开全部
这是一个用冒泡排序的算法:
解释如下:
//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();
}
注释有点多,。希望你能看的懂.。
哪里还不懂,百度Hi我.。
解释如下:
//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();
}
注释有点多,。希望你能看的懂.。
哪里还不懂,百度Hi我.。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这段代码不看也罢
使用goto语句 结构太乱,不容易看懂
在以后的编程中 尽量少用goto语句
使用goto语句 结构太乱,不容易看懂
在以后的编程中 尽量少用goto语句
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询