您的位置:首页 > 其它

算法导论 第二章

2014-12-02 20:47 120 查看
2014-12-02 20:21:40
/article/5763533.html
上面链接指向算法导论第二章的预习博客,很值得一看,很详细。
插入算法:

#include <iostream>

using namespace std;
void insert_sort(int *datas, int length);
int main()
{
int a[10]={1,2,4,35,6,1,4,7,9,7};
insert_sort(a,10);
return 0;
}

void insert_sort(int *datas,int length)
{
int i,j;
int key,tmp;
//判断参数是否合法
if(NULL == datas || 0==length)
{
cout<<"Check datas or length.\n";
//exit(1);
}
//数组下标是从0开始的,从第二个元素(对应下标1)开始向前插入
for(j=1;j<length;j++)
{
key = datas[j];  //记录当前要插入的元素
i = j-1;  //前面已经有序的元素
//寻找待插入元素的位置,从小到到排序,如果是从大到小改为datas[i]<key
while(i>=0 && datas[i] > key)
{
datas[i+1] = datas[i];
i--;   //向前移动
}
datas[i+1] = key;  //最终确定待插入元素的位置
}
for(int i =0;i<10;i++)
{
cout<<datas[i]<<endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: