C插入排序
来源:互联网 发布:c语言程序员面试题 编辑:程序博客网 时间:2024/05/29 09:05
算法步骤:
1.从第一个元素开始,该元素可以认为已经被排序
2.取出下一个元素,在已经排序的元素序列中从后向前扫描
3.如果该元素(已排序)大于新元素,则该元素移到下一个位置
4.重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
5.将新元素插入到该位置后
6.重复步骤2~5
实例:
#include <stdio.h>void insertsort(int *data, int size){int i, j;int tmp;for (i = 1; i<size; i++){tmp = *(data + i);for (j = i; j>0 && *(data + j - 1)>tmp; j--)*(data + j) = *(data + j - 1);*(data + j) = tmp;}}void displayoutcome(int *data, int size){int i;for (i = 0; i<size; i++)printf("%d ", *(data + i));printf("\n");}int main(){/*时间复杂度:O(n^2)空间复杂度:O(1)思路:从第二个元素开始,不断前移。针对数据量比较小时可用。*/int data[] = { 60, 2, 97, 78, 0, 84, 68, 23, 48, 22, 63, 31, 43, 42, 82, 9,57, 21, 42, 62, 83, 98, 64, 72, 96, 31, 76, 13, 70, 49, 10, 60, 72, 36,26, 4, 56, 54, 13, 9, 98, 45, 61, 90, 88, 80, 30, 50, 77, 83, };int size = sizeof(data) / sizeof(int);insertsort(data, size);displayoutcome(data, size);getchar();return 0;}
结果:
参考网址
阅读全文
0 0
- 插入排序(C/C++)
- 插入排序 --C数据结构
- 插入排序(C#)
- 插入排序C语言
- c语言插入排序
- 插入排序C实现
- C插入排序
- C语言 --- 插入排序
- C实现插入排序
- C语言插入排序
- C语言插入排序
- C语言插入排序
- linux c插入排序
- 插入排序 C实现
- C语言插入排序
- C++_插入排序
- [C#]插入排序
- 【c++】插入法排序
- 【深度】关于天基信息网络综合管控系统建设的思考
- 【SMS】SMS协议介绍之常用缩语
- js下firstElementChild以及firstChild,Children的用法
- Java链接MySQL时遇到的问题
- RADOS分布式对象存储原理简介
- C插入排序
- CxImage开源库在VS2013的编译和使用
- Centos7 MongoDB
- java序列化
- Viewpager+handler实现轮播图--pizifusheng
- 命令行使用总结
- MIT-BIH
- Maven--setting.xml详解
- springmvc+mybatis整合cms + 实现UC浏览器文章功能