排序算法,就目前统计而言,有直接选择排序,直接插入排序,希尔排序,堆排序,冒泡排序,快速排序,归并排序,基数排序,计数排序,桶排序,随机快速排序,名次排序共 12种。
这几种排序之中,是可以分类。基数排序,计数排序,桶排序都是非比较性的排序方法,而其它的所有算法都是基于比较的。部分算法的时间空间的复杂度如下:
冒泡排序
#include<cstdio>
int num[32768];
int tot;
int main(){
scanf("%d",&tot);
for(int i=1;i<=tot;i++){
scanf("%d",&num[i]);
}
for(int i=1;i<=tot;i++){
for(int j=1;j<=tot-i;j++){
if(num[j+1]>num[j]){
int t=num[j+1];
num[j+1]=num[j];
num[j]=t;
}
}
}
for(int i=1;i<=