[PAT]1098. Insertion or Heap Sort (25)
来源:互联网 发布:倚天屠龙记结局知乎 编辑:程序博客网 时间:2024/05/16 07:06
#include <iostream>#include <vector>#include <string>#include <stdlib.h>#include <math.h>#include <sstream>#include <map>#include <set>#include <queue>#include <algorithm>using namespace std; void swap(int &a,int &b){int temp = a;a = b;b=temp;}vector<vector<int>> InsertionSort(vector<int> &sq){vector<vector<int>> proc;proc.push_back(sq);for(int i=1;i<sq.size();i++){for(int j=0;j<i;j++){if(sq[i]<sq[j]){ for(int k=i;k>j;k--)swap(sq[k],sq[k-1]);proc.push_back(sq);}}}return proc;} int main(void){int N;cin>>N;vector<int> seq;vector<int> midseq;for(int i=0;i<N;i++){int temp;cin>>temp;seq.push_back(temp);}for(int i=0;i<N;i++){int temp;cin>>temp;midseq.push_back(temp);} vector<vector<int>> insertseq = InsertionSort(seq);for(int i=0;i<insertseq.size();i++){if(midseq == insertseq[i]){cout<<"Insertion Sort"<<endl;if(i<insertseq.size() -1){for(int k=0;k<insertseq[i+1].size()-1;k++){cout<<insertseq[i+1][k]<<" ";}cout<<insertseq[i+1][insertseq[i+1].size()-1]<<endl;}else{for(int k=0;k<midseq.size()-1;k++){cout<<midseq[k]<<" ";}cout<<midseq[midseq.size()-1]<<endl;}system("pause");return 0;}}cout<<"Heap Sort"<<endl;vector<int> newvec;newvec.push_back(0);int idx;for(int i=1;i<midseq.size();i++){if(midseq[i]>midseq[0]){swap(midseq[0],midseq[i - 1]);idx = i-1;for(int k=0;k<idx;k++)newvec.push_back(midseq[k]);break;}}int k=1;while(1){if(2*k>newvec.size()-1)break;else if(2*k == newvec.size()-1){if( newvec[k]<newvec[2*k]){swap(newvec[2*k],newvec[k]);break;}}else if(2*k+1 == newvec.size()-1 ){if(newvec[k]<newvec[2*k+1]){swap(newvec[2*k+1],newvec[k]);break;}}else{if(newvec[2*k]> newvec[2*k+1]){swap(newvec[2*k],newvec[k]);k = 2*k;}else{swap(newvec[2*k+1],newvec[k]);k = 2*k+1;}}}for(int i=1;i<newvec.size();i++){cout<<newvec[i]<<" "; }for(int i=idx;i<midseq.size()-1;i++){cout<<midseq[i]<<" "; }cout<<midseq[midseq.size()-1]<<endl;system("pause");return 0;}
0 0
- PAT 1098. Insertion or Heap Sort (25)
- [PAT]1098. Insertion or Heap Sort (25)
- 【PAT】1098. Insertion or Heap Sort (25)
- PAT 1098. Insertion or Heap Sort (25)
- PAT 1098. Insertion or Heap Sort
- PAT--1098. Insertion or Heap Sort(排序)
- 【PAT】1098. Insertion or Heap Sort
- PAT A1098. Insertion or Heap Sort (25)
- PAT 1098-Insertion or Heap Sort (25)
- PAT A1098 insertion or heap sort (25)
- PAT A 1098. Insertion or Heap Sort (25)
- PAT(Advance) 1098. Insertion or Heap Sort (25)
- 1098. Insertion or Heap Sort (25) PAT甲级
- [转]PAT甲级练习1098. Insertion or Heap Sort (25)
- PAT甲级1098. Insertion or Heap Sort (25)
- PAT-A-1098. Insertion or Heap Sort (25)
- PAT A 1098. Insertion or Heap Sort (25)
- 【PAT】【Advanced Level】1098. Insertion or Heap Sort (25)
- Visual Studio2015切换开发环境方法
- Android 学习经典教材(Eclips)
- Python爬虫判断url链接的是下载文件还是html文件
- 【软考】设计模式(上午题)
- 工具类4
- [PAT]1098. Insertion or Heap Sort (25)
- 多种数据输入
- linux常用命令总结
- Leetcode NO.274 H-Index
- andriod开发点滴(在listView上添加了一个checkbox后,点击list无响应)
- 单例(一)
- 闲来无事,学着用C#写邮箱助手、群发小工具
- C# 中栈和队的区别
- POJ 1741 Tree 树 点分治