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变量存储的值赋值给最后一个元素
}
这一段怎么理解?
注释写得很清楚啊,你在断点调试一步步执行一遍看看就知道了啊,这是从大到小排序嘛
其实很通用的做法是判断索引大小排序