直接插入排序
来源:互联网 发布:阿里云快速备案' 编辑:程序博客网 时间:2024/05/16 05:06
直接插入排序:将待排序序列分为有序区和无序区,不断的将无序区的元素插入有序区。插入的时候要依次比较有序区的元素找到合适的插入位置。可以顺序比较,也可以逆序比较。这里采用逆序比较方法,即把r[i]和r[i-1],r[i-2]......r[1]比较,在r[0]处设置哨兵。
#include <iostream>using namespace std;void InsertSort(int a[],int n)//n为数组能存的元素个数{ int len=n-1; for(int i=2;i<=len;i++)//把第一个元素当成有序区,从第二个元素开始插入 { int j; if(a[i]<a[i-1])//与有序序列的最后一个元素比较确定是否需要向前插入 { a[0]=a[i];//设置哨兵 a[i]=a[i-1];//将a[i]的位置空出来以便整体后移及插入 for(j=i-2;a[0]<=a[j];j--)//寻找插入位置 { a[j+1]=a[j]; } a[j+1]=a[0];//循环结束后a[j]<a[0],则a[j+1]为合适位置 } }}int main(){ int a[105]; int n; cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; } InsertSort(a,n+1); for (int j=1;j<=n;j++)//构造一个升序序列 { cout<<a[j]<<" "; } cout<<endl; return 0;}
阅读全文
0 0
- 插入排序--直接插入
- 插入排序------直接插入
- 插入排序---直接插入
- 排序:直接插入排序
- 排序---直接插入排序
- 排序 -- 直接插入排序
- 排序---直接插入排序
- 排序--直接插入排序
- 排序-直接插入排序
- 【排序】直接插入排序
- 排序--直接插入排序
- 排序:直接插入排序
- 【排序】直接插入排序
- 排序--直接插入排序
- 排序--直接插入排序
- 排序-直接插入排序
- 插入排序--直接插入排序
- 插入排序-直接插入排序
- Android之HttpClient和HttpUrlConnection
- *无向图求割点+点双连通分量——Tarjan
- 我要六一儿童节礼物!!DecoratorPattern----装饰模式
- 如何用SVG做出背景填充效果(avatar)
- java从入门到弃坑数据库0 0
- 直接插入排序
- React-JSX-常量定义与使用
- Java TCP 客户端和服务端之间的使用
- oj350. Intersection of Two Arrays II
- Python例题3-8 放眼世界
- Java注解
- 考研数学笔记 66~69
- POJ 1679 The Unique MST 笔记
- jquery无刷新添加和删除input输入框 增加减少input框