C#排序(一):插入排序
插入排序是最简单最直观的排序算法了,它的依据是:遍历到第N个元素的时候前面的N-1个元素已经是排序好的了,那么就查找前面的N-1个元素把这第N个元素放在合适的位置,如此下去直到遍历完序列的元素为止。
class Program
{
static void Main()
{
int[] array = new int[] { 34, 2, 45, 67, 89, 90 };
Output(array);
InsertSort(array);
Console.WriteLine("插入排序完成:");
Output(array);
}
private static void Output(int[] array)
{
for (int i = 0; i < array.Length; i++)
{
Console.Write("{0}\t",array[i]);
}
Console.WriteLine();
}
private static void InsertSort(int[] array)
{
//从第二个元素开始
for (int i = 1; i < array.Length; i++)
{
int temp = array[i];
int j = i - 1;
//从当前元素往右边找插入点
while (array[j] > temp)
{
array[j + 1] = array[j];//后移
j--;
if (j == -1)
break;
}
//前面已经后移了,会留下一个空位置,现在就插入
array[j + 1] = temp;
}
}
}