排序算法之插入排序
1.基本思路
生活中最简单的例子就是玩扑克牌了,比如第一张牌拿到的是3,第二张是2,那么就把2放在三的前面,第三张拿的6就放在3的后面,现在手上牌的顺序是:2,3,6,第四张拿的1,因为1比6小,将6后移一位,接着比较1和3的位置,后移3,比较2和1,后移2,然后将1放在最前面的位置,这就是插入排序的基本思路。
2.代码实现
namespace InsertSort
{
class Program
{
static void Main(string[] args)
{
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
int[] arry = { 9, 7, 12, 6, 8, 1 };
Console.WriteLine("-------------排序前--------------");
for (int i = 0; i < arry.Length; i++)
{
Console.Write(arry[i] + " ");
}
InsertSort(arry);
Console.WriteLine("\n-------------插入排序 排序后--------------");
for (int i = 0; i < arry.Length; i++)
{
Console.Write(arry[i] + " ");
}
Console.ReadKey();
}
public static void InsertSort(int[] arry)
{
if (arry.Length == 0 || arry == null)
return;
for (int i = 1; i < arry.Length ; i++)
{
var target = arry[i];
var j = i;
while (j > 0&&arry[j - 1] > target)
{
arry[j] = arry[j - 1];
j--;
}
arry[j] = target;
}
}
}
}


浙公网安备 33010602011771号