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

插入排序(C/C++)

2015-09-17 23:26 246 查看

算法原理

插入排序是平时抓扑克牌进行排序的一个模仿实现,即从第一张开始把新的元素(抽到的扑克)不断插入到有序序列中.



算法复杂度

时间复杂度: 最好O(n)有序数列 , 最坏O(n2) ,平均O(n2)

空间复杂度: O(n)

算法实现

#include <iostream>
#define LEN 10
using namespace std;
void print_array(int *data,int size)   //打印序列
{
for(int i = 0; i < size ;++i)
{
cout << data[i] << "  " ;
}
cout << endl;
}

void insert_sort(int data[])
{
for(int i = 1;i < LEN;++i)
{
int key = data[i]; //save key value in order to overwrite it
int j = i - 1;
while(j >= 0 && data[j] > key)
{
data[j+1] = data[j];  //move key value to correct position
j--;
}
data[j+1] = key; //set key value
//printarray(data,LEN);
}
}

int main()
{
int data[] = {2,1,5,8,6,4,3,10,5,9};
insert_sort(data);
print_array(data,LEN);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  插入排序 算法 排序