C++实现计数排序
voidCountSort(int*a,intn){assert(a);intminValue=a[0];intmaxValue=a[0];for(inti=0;i<n;++i){if(minValue>a[i]){minValue=a[i];}if(maxValue<a[i]){maxValue=a[i];}}intrange=maxValue-minValue+1;int*tmp=newint[range];memset(tmp,0,sizeof(int)*range);intindex=0;while(index<n){tmp[a[index]-minValue]++;++index;}index=0;for(inti=0;i<range;++i){while(tmp[i]--){a[index++]=i+minValue;}}delete[]tmp;}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。