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

插入排序的C++实现

时间:2015-06-16 01:10:59      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:

直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。

这个算法比较简单,不需要过多的解释,代码如下:

 1 /*
 2  * insert the value which is at the index index in data
 3  */
 4 void insert_sort(int *data, int index, int value)
 5 {
 6     int temp_index = index;
 7     for(int i = 0;i < index;++i)
 8     {
 9         //find the first value that bigger than the passed value
10         if(value < data[i])
11         {
12             temp_index = i;
13             break;
14         }
15     }
16 
17     int temp = index;
18     while(temp > temp_index)  //right shift one number from the temp_index
19         data[temp] = data[--temp];
20     data[temp_index] = value;
21 }

以下是测试:

 1 int main()
 2 {
 3 //    int data[] = {3,2,6,1,30,-3};
 4     int data[] = {5,4,3,2,1,0};
 5     int length = 6;
 6     for(int i = 1;i < length;++i)
 7         insert_sort(data,i,data[i]);
 8 
 9     for(int i = 0;i < length;++i)
10         cout << data[i] << "  ";
11     cout << endl;
12     return 0;
13 }

结果如下:

技术分享

插入排序的C++实现

标签:

原文地址:http://www.cnblogs.com/rio2607/p/4579512.html

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