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(" -------------插入排序 排序后--------------"); 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; } } } }