1.冒泡排序
#include<bits/stdc++.h>
using namespace std;
int a[100000+10];
int main()
{
int n,t;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for(int i=1;i<=n-1;i++){
bool f=1;
for(int j=n;j>=i+1;j--)
if(a[j]<a[j-1])
{
t=a[j];
a[j]=a[j-1];
a[j-1]=t;
f=0;
}
if(f==1) break;
}
for(int i=1;i<=n;i++)
cout<<a[i]<<" ";
return 0;
}
2.最小值
#include<bits/stdc++.h>
using namespace std;
int a[100000+10];
int main()
{
int n,t;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for(int i=1;i<=n-1;i++){
bool f=1;
for(int j=n;j>=i+1;j--)
if(a[j]<a[j-1])
{
t=a[j];
a[j]=a[j-1];
a[j-1]=t;
f=0;
}
if(f==1) break;
}
cout<<a[1];
return 0;
}
3.奇数单增序列
#include<bits/stdc++.h>
using namespace std;
int a[100000+10];
int main()
{
int n,t,x,y=0;
cin>>n;
for(int i=1,j=1;i<=n;i++)
{
cin>>x;
if(x%2!=0)
{
a[j]=x;
j++;
y++;
}
}
for(int i=1;i<=y-1;i++){
bool f=1;
for(int j=y;j>=i+1;j--)
if(a[j]<a[j-1])
{
t=a[j];
a[j]=a[j-1];
a[j-1]=t;
f=0;
}
if(f==1) break;
}
for(int i=1;i<=y-1;i++)
{
cout<<a[i]<<",";
}
cout<<a[y];
return 0;
}
4.选择排序
#include <bits/stdc++.h>
using namespace std;
int a[100000 + 10];
int main() {
int n, t, x, y = 0;
cin >> n;
for (int i = 1, j = 1; i <= n; i++) {
cin >> a[i];
}
for (int i = 1; i <= n - 1; i++) {
bool f = 1;
for (int j = n; j >= i + 1; j--)
if (a[j] < a[j - 1]) {
t = a[j];
a[j] = a[j - 1];
a[j - 1] = t;
f = 0;
}
if (f == 1)
break;
}
for (int i = 1; i <= n; i++) {
cout << a[i] << " ";
}
return 0;
}
5.车厢重组
#include <bits/stdc++.h>
using namespace std;
int a[100000 + 10];
int main() {
int n, t, num = 0;
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
for (int i = 1; i <= n - 1; i++) {
bool f = 1;
for (int j = n; j >= i + 1; j--)
if (a[j] < a[j - 1]) {
t = a[j];
a[j] = a[j - 1];
a[j - 1] = t;
f = 0;
num++;
}
if (f == 1)
break;
}
cout << num;
return 0;
}