插入排序
发布时间:2015-11-06 栏目:软件算法 评论:0 Comments
插入排序很好理解,一个形象的比喻就是在打牌时,新摸了一张牌,如何把这张牌插入到已有的牌里。此方法简单易用,但是时间复杂度偏高,为O(n*n)。
算法原理:把数组从前往后搜索,之前的部分都是排过序的,每次把后面的一个新的值插入到前面的队列中,插入的方法采用比较法,如果小于前面的就交换。
以下代码编译通过:
#include <stdio.h>
void insertsort(int* datas, int length)
{
int i,j;
int k,key;
if((datas==NULL)||(length==0))
printf(“Check your input please!”);
for(i=1;i<length;i++)
{
for(j=i-1,k=i;j>=0;j–,k–)
{
if(datas[j]>datas[k])
{
key=datas[k];
datas[k]=datas[j];
datas[j]=key;
}
else
break;
}
}
}
int main(int agrv, char* argc[])
{
int data[9]={12,45,67,9,100,23,67,10,7};
insertsort(data,9);
for(int i=0;i<9;i++)
printf(“%d “, data[i]);
printf(“\n”);
return 0;
}
运行g++编译:
g++ test.cpp -o test
./test
留下评论
You must be logged in to post a comment.
近期评论
- Pika发表在《莫里斯蠕虫(Morris Worm)》
- Pika发表在《多组学科研分析》
- crisy发表在《最近关于专利的一点感想》
- walter发表在《机器学习基础知识回顾-马尔科夫过程(Markov Process)》
文章归档
- 2024年3月
- 2024年2月
- 2023年12月
- 2023年11月
- 2023年10月
- 2023年9月
- 2023年8月
- 2023年7月
- 2023年6月
- 2023年5月
- 2023年4月
- 2023年3月
- 2023年2月
- 2023年1月
- 2022年12月
- 2022年11月
- 2022年9月
- 2022年8月
- 2022年7月
- 2022年6月
- 2022年5月
- 2022年3月
- 2022年2月
- 2022年1月
- 2021年12月
- 2021年11月
- 2021年10月
- 2021年9月
- 2021年8月
- 2021年7月
- 2021年6月
- 2021年5月
- 2021年4月
- 2021年2月
- 2021年1月
- 2020年12月
- 2020年11月
- 2020年10月
- 2020年8月
- 2020年7月
- 2020年6月
- 2020年5月
- 2020年4月
- 2020年3月
- 2020年2月
- 2019年7月
- 2019年5月
- 2019年3月
- 2019年1月
- 2018年6月
- 2018年5月
- 2018年4月
- 2018年3月
- 2018年2月
- 2017年11月
- 2017年7月
- 2017年6月
- 2017年5月
- 2017年3月
- 2016年12月
- 2016年11月
- 2016年10月
- 2016年9月
- 2016年8月
- 2016年7月
- 2016年6月
- 2016年5月
- 2016年4月
- 2016年3月
- 2016年2月
- 2016年1月
- 2015年12月
- 2015年11月