码迷,mamicode.com
首页 > 编程语言 > 详细

插入排序

时间:2015-05-21 18:43:07      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!