插入排序是将无序数组的进行插入式的排序,思想是知道插入有序部分的位置在哪,插入后,我们应该向将插入位置后的数都向后移,而不是向前移,向前移动会比较麻烦
/// <summary>
/// 插入排序
/// </summary>
/// <param name="unsorted"></param>
static void insertion_sort(int[] unsorted)
{
for (int i = 1; i < unsorted.Length; i++)
{
if (unsorted[i - 1] > unsorted[i])
{
int temp = unsorted[i];
int j = i;
while (j > 0 && unsorted[j - 1] > temp)
{
unsorted[j] = unsorted[j - 1];
j--;
}
unsorted[j] = temp;
}
}
}
static void Main(string[] args)
{
int[] x = { 6, 2, 4, 1, 5, 9 };
insertion_sort(x);
foreach (var item in x)
{
if (item > 0)
Console.WriteLine(item + ",");
}
Console.ReadLine();
}