1冒泡排序
时间复杂度O(n^2)
示例:
for(int i=1;i<n;i++){
for(int j=1;j<=n-i;j++){
a[j+1]=max(a[j],a[j+1]);
a[j]=min(a[i],a[j+1]);
}
}
2快速排序
时间复杂度O(nlogn)
最坏时间复杂度O(n^2)
示例
sort(a+1,a+n+1)
3计数排序
时间复杂度:O(n+m)
示例:
#include <bits/stdc++.h>
using namespace std;
int x,m=-1,d=INT_MAX;
int b[10005];
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>x;
b[x]++;
m=max(m,x);
d=min(d,x);
}
for(int i=m;i>=d;i--){
if(b[i]){
cout<<i<<' ';
}
}
return 0;
}