-
选择排序
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[10001];
int n;
cin>>n;
for(int i=0;i<n;i++)cin>>a[i];
for(int i=0;i<n;i++){
int p=i;
for(int j=i;j<n;j++){
if(a[j]<a[p]){
p=j;
}
}
int tmp=a[i];
a[i]=a[p];
a[p]=tmp;
}
for(int i=0;i<n;i++)cout<<a[i]<<" ";
return 0;
}
-
冒泡排序
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int a[1001];
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int i=0;i<n-1;i++){
for(int j=n;j>i;j--){
if(a[j]<a[j-1])swap(a[j],a[j-1]);
}
}
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}
return 0;
}
-
希尔排序
#include<bits/stdc++.h>
using namespace std;
const int MAXX=100005;
int a[MAXX];
void di1ci(int a[],int n){
int gap,i,j;
for(gap=n/2;gap>0;gap/=2){
for(i=gap+1;i<=n;i++){
for(j=i-gap;j>=1;j-=gap){
if(a[j]>a[j+gap])swap(a[j],a[j+gap]);
else break;
}
}
}
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
di1ci(a,n);
for(int i=1;i<n;i++)cout<<a[i]<<",";
cout<<a[n];
return 0;
}
-
sort
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[1001],n;
cin>>n;
for(int i=0;i<n;i++)cin>>a[i];
sort(a,a+n);
for(int i=0;i<n;i++)cout<<a[i];
return 0;
}