您的位置:首页 > 编程语言 > C语言/C++

插入排序的C++实现

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

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

/*
* insert the value which is at the index index in data
*/
void insert_sort(int *data, int index, int value)
{
int temp_index = index;
for(int i = 0;i < index;++i)
{
//find the first value that bigger than the passed value
if(value < data[i])
{
temp_index = i;
break;
}
}

int temp = index;
while(temp > temp_index)  //right shift one number from the temp_index
data[temp] = data[--temp];
data[temp_index] = value;
}


以下是测试:

int main()
{
//    int data[] = {3,2,6,1,30,-3};
int data[] = {5,4,3,2,1,0};
int length = 6;
for(int i = 1;i < length;++i)
insert_sort(data,i,data[i]);

for(int i = 0;i < length;++i)
cout << data[i] << "  ";
cout << endl;
return 0;
}


结果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: