关注
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn = 110;
int origin[maxn], tempOri[maxn], changed[maxn];
int n;
bool isSame(int a[], int b[]){
for(int i = 0; i < n; i++){
if(a[i] != b[i]) return false;
}
return true;
}
void showArray(int a[]){
for(int i = 0; i < n; i++){
printf("%d",a[i]);
if(i < n-1) printf(" ");
}
}
bool insertSort(){
bool flag = false;
for(int i = 1; i < n; i++){
if(i != 1 && isSame(tempOri, changed)){
flag = true;
}
int temp = tempOri[i], j = i;
while(j > 0 && tempOri[j - 1] > temp){
tempOri[j] = tempOri[j - 1];
j--;
}
tempOri[j] = temp;
if(flag && !isSame(tempOri, changed))
return true;
}
return false;
}
void mergeSort(){
bool flag = false;
for(int step = 2; step / 2 <= n; step *= 2){
if(step != 2 && isSame(tempOri, changed)){
flag =true;
}
for(int i = 0; i < n; i += step){
sort(tempOri + i, tempOri + min(step + i, n));
}
if(flag){
showArray(tempOri);
return;
}
}
}
int main(){
scanf("%d", &n);
for(int i = 0; i < n; i++){
scanf("%d", &origin[i]);
tempOri[i] = origin[i];
}
for(int i = 0; i < n; i++){
scanf("%d", &changed[i]);
}
if(insertSort()){
printf("Insertion Sort\n");
showArray(tempOri);
}else{
printf("Merge Sort\n");
for(int i = 0; i < n; i++){
tempOri[i] = origin[i];
}
mergeSort();
}
return 0;
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 26届春招投递记录 #
20958次浏览 154人参与
# 你最近因为什么迷茫? #
101093次浏览 962人参与
# 我的求职总结 #
493663次浏览 6935人参与
# 腾讯笔试 #
157851次浏览 1150人参与
# 27届实习投递记录 #
93532次浏览 983人参与
# 你认为工作的意义是什么 #
289664次浏览 1589人参与
# 拼多多集团-PDD笔试 #
105443次浏览 643人参与
# 你遇到过哪些神仙同事 #
145641次浏览 770人参与
# 字节跳动笔试 #
102649次浏览 390人参与
# 秋招盘点:机械人值得去的企业 #
107686次浏览 744人参与
# 今年秋招哪家公司给的薪资最良心? #
485720次浏览 2585人参与
# 招银网络科技(深圳)有限公司成都分公司笔试 #
10122次浏览 38人参与
# 你的实习什么时候入职 #
383920次浏览 2405人参与
# 拼多多工作体验 #
63927次浏览 443人参与
# 我是XXX,请攻击我最薄弱的地方 #
100417次浏览 655人参与
# 一人推荐一个值得做的项目 #
83378次浏览 920人参与
# 总结:哪家公司面试体验感最好 #
91399次浏览 458人参与
# Vibe Coding 会干掉初级岗位吗? #
53115次浏览 339人参与
# 美团秋招笔试 #
219676次浏览 1198人参与
# 产品实习,你更倾向大公司or小公司 #
230614次浏览 2152人参与
