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();
}
看不懂,能详细解析下吗?
展开
 我来答
leihenyx
2009-04-16
知道答主
回答量:19
采纳率:0%
帮助的人:11.8万
展开全部
选择排序而已,从第一个数组元素i开始和之后的所有元素j比较,如果i>j,则将i和j对调。

最后结果是这个数组被顺序排序了(即小的在前面)。
痴情的张无忌
推荐于2016-01-08 · TA获得超过532个赞
知道小有建树答主
回答量:557
采纳率:0%
帮助的人:189万
展开全部
这是一个用冒泡排序的算法:

解释如下:

//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我.。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
仵天菱C
2009-04-16 · TA获得超过233个赞
知道小有建树答主
回答量:173
采纳率:0%
帮助的人:181万
展开全部
这段代码不看也罢
使用goto语句 结构太乱,不容易看懂
在以后的编程中 尽量少用goto语句
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式