线性时间排序--桶排-创新互联

1、桶排序

创新互联主营定日网站建设的网络公司,主营网站建设方案,App定制开发,定日h5小程序定制开发搭建,定日网站营销推广欢迎定日等地区企业咨询

 可以排序的范围数较小,是一种以空间换时间的排序算法;

 不考虑重复元素的出现---->桶排;解决方案在计数排序;

 (1)、代码实现

#include

void bucketSort(int *a, int count);
void showArray(int *a, int count);

void showArray(int *a, int count){
    int i;

    for(i = 0; i < count; i++){
        printf("%d ", a[i]);
    }
    printf("\n");
}

void bucketSort(int *a, int count){
    int b[10] = {0};  //知道要排序值的大范围
    int i;
    int n = 0;

    for(i = 0; i < count; i++){
        b[a[i]]++;
    }

    for(i = 0; i < 10; i++){
        if(b[i]){
            a[n++] = i;
        }
    }
}

void main(void){
    int a[] = {3, 5, 1, 8, 9, 6};
    int count = sizeof(a)/sizeof(int);

    bucketSort(a, count);
    showArray(a, count);
}

 (2)、结果截图

线性时间排序--桶排

 (3)、算法分析

 时间复杂度:O(n);

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章标题:线性时间排序--桶排-创新互联
分享链接:http://scyanting.com/article/copgco.html