标签:
1.思想
插入排序的思想有点像打扑克抓牌的时候,我们插入扑克牌的做法。想象一下,抓牌时,我们都是把抓到的牌按顺序放在手中。因此每抓一张新牌,我们都将其插入到已有的排好序的手牌当中,注意体会刚才的那句话。也就是说,插入排序的思想是,将新来的元素按顺序放入一个已有的有序序列当中。
举个例子可能更容易理解一些,假设有这样一系列数字:
8 2 4 9 3 6 首先我们考虑数字2,假设后面的数字不存在(手中只有一张8,又抓来了2),那么显然2应该放在8的前面。
2 8 4 9 3 6 又抓来了一张4,现在大家都知道应该怎么办了吧?
2 4 8 9 3 6 又来了个9,没错,正好不用换顺序
2 4 8 9 3 6 同样的道理,考虑3该放的位置,显然放在2和4的中间
2 3 4 8 9 6 最后一个也是一样,最后得到从小到大的序列
2 3 4 6 8 9 完成排序
2.C#实现
1 Int32[] numbers = new Int32[] { 2,50,5,9,6,10,45,21,4}; 2 3 for (int i = 1; i <= numbers.Length - 1; i++) 4 { 5 int j = i; 6 while (j > 0 && numbers[j] < numbers[j - 1]) 7 { 8 int a = numbers[j]; 9 numbers[j] = numbers[j - 1]; 10 numbers[j - 1] = a; 11 12 j--; 13 } 14 } 15 16 for (int i = 0; i < numbers.Length; i++) 17 { 18 Console.Write(numbers[i]); 19 if (i != numbers.Length - 1) 20 { 21 Console.Write(" , "); 22 } 23 } 24 25 Console.ReadKey();
标签:
原文地址:http://www.cnblogs.com/JustYong/p/4520142.html