冒泡
#include<iostream>
using namespace std;
void bouble_sort(int a[],int n){
for(int i=0;i<n-1;i++){
for(int j=0;j<n-i-1;j++){
if(a[j]>a[j+1])swap(a[j],a[j+1]);
}
}
}
int main(){
int n;
cin>>n;
int a[n];
for(int i=0;i<n;i++){
cin>>a[i];
}
bouble_sort(a,n);
for(int i=0;i<n;i++){
if(i!=0)cout<<' ';
cout<<a[i];
}
}
计数
#include<iostream>
using namespace std;
int max_2(int a[],int n)
{
int r=a[0];
for(int i=1;i<n;i++){
if(a[i]>r) r = a[i];
}
return r;
}
void Count_sort(int a[],int n)
{
int maxn = max_2(a,n);
int b[maxn+1];
b={0,0};
for(int j=0;j<n;j++) b[a[j]]++;
for(int i=0,k=0;i<=m||k<n;i++)
{
while(b[i]>0){
a[k++] = i;
b[i]--;
}
}
}
int main(){
int n;
cin>>n;
int a[n];
for(int i=0;i<n;i++)cin>>a[i];
Count_sort(a,n);
for(int i=0;i<n;i++)cout<<a[i]<<' ';
}
插入
#include<iostream>
using namespace std;
void insertion_sort(int a[],int n)
{
for (int i = 1; i < n; i++){
int key = a[i];
int j = i - 1;
for(j; j >= 0; j--){
if(a[j] > key)
a[j + 1] = a[j];
else{
break;
}
}
a[j + 1] = key;
}
}
int main(){
int n;
cin>>n;
int a[n];
for(int i=0;i<n;i++)cin>>a[i];
insertion_sort(a,n);
for(int i=0;i<n;i++)cout<<a[i]<<' ';
}
选择
#include<iostream>
using namespace std;
void selection_sort(int a[],int n){
for(int i=0;i<n-1;i++){int b=i;
for(int j=i+1;j<n;j++){
if(a[j]>a[b]){
b=j;}
}
swap(a[b],a[i]);
}
}
int main(){
int n;
cin>>n;
int a[n];
for(int i=0;i<n;i++)cin>>a[i];
selection_sort(a,n);
for(int i=0;i<n;i++)cout<<a[i]<<' ';
}