C++排序算法之插入排序
来源:互联网 发布:by什么意思网络用语 编辑:程序博客网 时间:2024/05/29 04:41
插入算法:把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这个最后元素插入到已排好序的第一部分中。
代码如下(从小到大):
#include<cstdio>#include<cstdlib>int main(){int n,num[10000]; //定义数组scanf("%d",&n);for(int i=0;i<n;i++)scanf("%d",&num[i]); //输入数/* 对num[1…n]按递增顺序进行排序,x是监控哨 */int x;for(int i=1;i<n;i++) //依次插入num[2],…,num[n]{x=num[i];int j=i-1;while(x<num[j]) //查找插入位置{num[j+1]=num[j]; //将大于num[i]的元素后移j--;}num[j+1]=x; //插入num[i]}for(int i=0;i<n;i++)printf("%d ",num[i]);}
也可以直接在插入的过程中读入数据,更省时:
#include<cstdio>#include<cstdlib>int main(){int n,num[10000]; //定义数组scanf("%d%d",&n,&num[0]);/* 对num[1…n]按递增顺序进行排序,x是监控哨 */int x;for(int i=1;i<n;i++) //依次插入num[2],…,num[n]{scanf("%d",&num[i]);x=num[i];int j=i-1;while(x<num[j]) //查找插入位置{num[j+1]=num[j]; //将大于num[i]的元素后移j--;}num[j+1]=x; //插入num[i]}for(int i=0;i<n;i++)printf("%d ",num[i]);}
阅读全文
1 0
- 算法之排序算法:插入排序(C++)
- C排序算法之插入排序
- 排序算法之插入排序 (C语言)
- C语言之排序算法---插入排序
- C--经典算法之排序---插入排序
- c语言排序算法之插入排序
- 算法导论 之 插入排序[C语言]
- 算法之插入排序【C语言】
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- 排序算法之插入排序
- Android用surface直接显示yuv数据(二)
- ADB server did not ACK
- 面试日记——阿里巴巴JAVA面试
- 数字货币开发专题(钱包开发的原理是什么)
- 【软考】软件工程-软件过程模型
- C++排序算法之插入排序
- 深度学习Caffe实战笔记(20)Windows平台 Faster-RCNN 训练自己的数据集
- Android 5.x SEAndroid/SElinux内核节点的读写权限
- JS入门基础
- [个人电脑阿里云maven配置 纯小白参考]
- 在初学php时用到的一些问题以及解决办法
- canvas相关内容
- c语言倒三角形输出显示,具有鲁棒性,可重复输入。
- android 动态权限问题