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

插入排序-最基本的版本

时间:2015-06-01 18:09:25      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:

插入排序的思想:
假设现在有一堆数据,需要排序,我们随便选取一个数据作为第一个元素。然后从剩下的数据里面选一个(称为key)和之前选的第一个元素做比较,按照要求(升序还是降序),把key和第一个元素排好序。这样,这2个元素就是排好序的了。现在从剩下的那一堆数据里面选一个作为新的key,再和之前已经排好序的元素,按照要求放到到合适的位置上。这样,这3个元素就是排好序的了。照此循环,把所有数据就排好序了。

参考代码:

 1 //arr:待排序的数组,length:待排序数组的长度
 2 void InsertSort(int arr[],int length)
 3 {
 4     int i,j;
 5     int key;    //待插入的数
 6     for(i = 1; i < length; ++i)
 7     {
 8         key = arr[i];
 9         j = i - 1;
10         
11         // 找到合适的位置,插入key 
12         // >:升序 <:降序
13         while(  (j >= 0)  && (arr[j] > key)   )
14         {
15             arr[j+1] = arr[j];
16             --j;
17         }
18         arr[j+1] = key;
19         
20     }
21 }

 

插入排序-最基本的版本

标签:

原文地址:http://www.cnblogs.com/wangqingsong/p/4544512.html

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