直接插入排序
来源:互联网 发布:淘宝销量多久清零 编辑:程序博客网 时间:2024/06/03 20:04
/*直接插入排序是指从序列的第2个元素依次与前一元素比较,从i=2趟开始比较*//*则当i=k时,表示前k个元素已经排好了序,再进行第k+1个元素与第k个元素比较*//*若<k,则将k+1的元素设置为监哨,从第k个元素依次往前与监哨比较,有大于监哨的*//*则记录后移,最后将空出的记录位置上填上监哨*//*时间复杂度O(n*n)*/#include<iostream>#include<vector>using namespace std;class InsertSort{public:void Input();//数据输入void Insert();//直接插入排序void Output();//数据输出private:vector<int> vec;//vec[0]作为监视哨};void InsertSort::Input(){int a;cout<<"第一个输入的数据元素作为监哨值,不作为表中的排序元素:"<<endl;while(cin>>a){vec.push_back(a);}//while}//Inputvoid InsertSort::Insert(){int i,j;for(i=2;i<vec.size();i++)//从vec[1]——vec[size-1]逐次向前比较if(vec[i]<vec[i-1])//当前要排序的关键字小于前面已排序的最后一个即最大的关键字{vec[0]=vec[i];//将当前关键字设置为监哨for(j=i-1;(vec[j]>vec[0]);j--)//从i-1个关键字起,逐一向前与监哨对比vec[j+1]=vec[j];//若>,则依次后移记录vec[j+1]=vec[0];//此时j处的关键字不大于监哨,而j+1处空白,则将监哨值存于j+1处}//if}//Insertvoid InsertSort::Output(){vector<int>::iterator it=vec.begin()+1;while(it!=vec.end()){cout<<*it<<" ";it++;}//while}//Outputvoid main(){InsertSort IS;IS.Input();IS.Insert();IS.Output();}//main
0 0
- 插入排序--直接插入
- 插入排序------直接插入
- 插入排序---直接插入
- 排序:直接插入排序
- 排序---直接插入排序
- 排序 -- 直接插入排序
- 排序---直接插入排序
- 排序--直接插入排序
- 排序-直接插入排序
- 【排序】直接插入排序
- 排序--直接插入排序
- 排序:直接插入排序
- 【排序】直接插入排序
- 排序--直接插入排序
- 排序--直接插入排序
- 排序-直接插入排序
- 插入排序--直接插入排序
- 插入排序-直接插入排序
- git 一些操作
- selenium2 python中的悬停操作
- SQLPLUS中的feedback设置
- solr SimpleIndexClient
- 接着2月份写的文章,股票行情App的成果
- 直接插入排序
- 【PHP】掌握下面常用函数,学php不再难!
- android 屏幕旋转
- android调用系统图片浏览器裁切后出现黑边
- 何为P2P技术?发展前景如何?
- [小技巧] 如何在ubuntu 12.04里使用代理时忽略某些hosts
- bug
- STL algorithm算法lexicographical_compare(30)
- weblogic11g集群配置