一个比sort更快的排序
作者:互联网
一个比sort更快的排序,一百万个数只需要27ms
非常消耗内存
#include<stdio.h>
#include<stdlib.h>
void SuperSort(int a[],int l){//a是数组头指针,l是数据最大值
int i,j,k;
char *p=(char*)calloc(l,1);
for(i=0;a[i]!=0;i++){
p[a[i]]++;
}
for(k=0,j=0;j<i;){
if(p[k]==0){
k++;
}else{
p[k]--;
a[j++]=k;
}
}
}
int a[20];//举个例子,比如排序20个数(一定要是全局变量哦)
int main(){
for(int i=0;i<20;i++)
{
a[i]=rand()%500000+1;//记住数值不能为0,也就是本算法不能排序0的数
}
SuperSort(a,500000);//数组的最大值不超过50万,所以第二个参数就填50万
//然后a数组就排序完成了
for(int i=0;i<20;i++)
{
printf("%d ",a[i]);//然后输出他
}
}
标签:sort,include,int,char,++,更快,排序,内存 来源: https://blog.csdn.net/pikaQge/article/details/100544157