namespace 插入排序
{
class Program
{
static void Main(string[] args)
{
int[] A=new int[7]{2,5,4,1,3,6,8};
InsertSort(A);
for (int i = 0; i < A.Length; i++)
{
Console.WriteLine(A[i].ToString());
}
Console.ReadKey();
}
public static void InsertSort(int[] R)
{
for (int i = 1; i < R.Length; i++) //外层循环,控制执行(n-1)趟排序
{
if (R[i] < R[i - 1]) //判断大小,决定是否需要交换
{
int temp = R[i]; //如果需要交换,则将待排序记录放入临时变量中
int j = 0;
for (j = i - 1; j >= 0 && temp < R[j]; j--) //内层循环,在有序序列中从后往前比较,找到待排序记录在有序列中位置(位置空出)
{
R[j + 1] = R[j]; //将有序记录往后移
}
R[j + 1] = temp; //将临时变量中的值放入正确位置,即空出的位置
}
}
}
}
}