三大垃圾排序的写法:
2024-08-26 20:02:34
发布于:广东
8阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int main(){
vector<int> a,b;
int n,x;
cin >> n;
for(int i = 0;i < n;i ++){
cin >> x;
if(x < 0){
b.push_back(x);
} else {
a.push_back(x);
}
}
//--------------------------------冒泡------------------------------------------
// for(int i = 0;i < a.size() - 1;i ++){
// for(int j = 0;j < a.size() - i - 1;j ++){
// if(a[j] > a[j + 1]){
// swap(a[j],a[j + 1]);
// }
// }
// }
// for(int i = 0;i < b.size() - 1;i ++){
// for(int j = 0;j < b.size() - i - 1;j ++){
// if(b[j] > b[j + 1]){
// swap(b[j],b[j + 1]);
// }
// }
// }
//------------------------------选择-----------------------------------------
// for(int i = 0;i < a.size() - 1;i ++){
// int min = i;
// for(int j = i + 1;j < a.size();j ++){
// if(a[j] < a[min]){
// min = j;
// }
// }
// swap(a[i],a[min]);
// }
// for(int i = 0;i < b.size() - 1;i ++){
// int max = i;
// for(int j = i + 1;j < b.size();j ++){
// if(b[j] < b[max]){
// max = j;
// }
// }
// swap(b[i],b[max]);
// }
//--------------------------------插入-------------------------------------
for(int i = 1;i < a.size();i ++){
if(a[i] < a[i - 1]){
int tmp = a[i],x;
for(x = i - 1;x >= 0 and tmp < a[x];x --){
a[x + 1] = a[x];
}
a[x + 1] = tmp;
}
}
for(int i = 1;i < b.size();i ++){
int tmp = b[i],x;
for(x = i - 1;x >= 0 and tmp < b[x];x --){
b[x + 1] = b[x];
}
b[x + 1] = tmp;
}
for(int i = 0;i < a.size();i ++){
cout << a[i] << " ";
}
for(int i = 0;i < b.size();i ++){
cout << b[i] << " ";
}
return 0;
}
全部评论 1
不是吧,怎么都用sort呢?????????????????????????????????????????????????????????????????????????????????????????????????????/
2024-08-26 来自 广东
0
有帮助,赞一个