首页 新闻 会员 周边 捐助

C#数组排序

0
悬赏园豆:10 [待解决问题]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace charupaixu
{
class Program
{
static void Main(string[] args)
{
int[] arr = new int[] { 3, 9, 27, 6, 18, 12, 21, 15 }; //定义一个一维数组,并赋值
Console.Write("初始数组:");
foreach (int n in arr) //循环遍历定义的一维数组,并输出其中的元素
Console.Write("{0}",n+" ");
Console.WriteLine();
for (int i = 0; i < 8; ++i)
{
int temp = arr[i]; //定义一个int变量,并使用获得的数组元素值赋值
int j = i;
while ((j > 0) && (arr[j - 1] > temp)) //判断数组中的元素是否大于获得的值
{
arr[j]
= arr[j - 1]; //如果是,则将后一元素的的值提前
--j;
}
arr[j]
= temp; //最后将int变量存储的值赋值给最后一个元素
}
Console.Write(
"排序后的数组:");
foreach (int n in arr) //循环
Console.Write("{0}",n+" ");
Console.ReadLine();


}
}
}

中的

for (int i = 0; i < 8; ++i)
{
int temp = arr[i]; //定义一个int变量,并使用获得的数组元素值赋值
int j = i;
while ((j > 0) && (arr[j - 1] > temp)) //判断数组中的元素是否大于获得的值
{
arr[j]
= arr[j - 1]; //如果是,则将后一元素的的值提前
--j;
}
arr[j]
= temp; //最后将int变量存储的值赋值给最后一个元素
}

这一段怎么理解?

@星的主页 @星 | 初学一级 | 园豆:190
提问于:2011-02-26 17:08
< >
分享
所有回答(2)
0

注释写得很清楚啊,你在断点调试一步步执行一遍看看就知道了啊,这是从大到小排序嘛

artwl | 园豆:16736 (专家六级) | 2011-02-26 21:40
0

其实很通用的做法是判断索引大小排序

Y2zz | 园豆:393 (菜鸟二级) | 2011-02-27 08:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册