排序--计数排序思想及其代码实现

来源:互联网 发布:搜索引擎和大数据 编辑:程序博客网 时间:2024/05/16 05:35

  计数排序是一种很有意思的排序,但是其输入数据有严格的要求,其一每个元素都必须是整数,其二每个元素需是大于或等于0的整数,其代码实现如下:

void countingSort(int *A,int n,int k){int *C=new int[k+1];int *B=new int[n];for(int i=0;i<=k;i++)C[i]=0;for(int i=0;i<n;i++)C[A[i]]++;for(int i=1;i<=k;i++)C[i]+=C[i-1];for(int i=n-1;i>=0;i--){B[--C[A[i]]]=A[i];}for(int i=0;i<n;i++)A[i]=B[i];}
其时间复杂度为O(n),即线性时间排序.

0 0