码迷,mamicode.com
首页 > 编程语言 > 详细

桶排序总结

时间:2016-09-15 22:52:24      阅读:328      评论:0      收藏:0      [点我收藏+]

标签:

数据结构排序算法之——桶排序(Bucket sort)

插入排序想关链接:

维基百科:https://zh.wikipedia.org/wiki/%E6%A1%B6%E6%8E%92%E5%BA%8F

极客学院想关介绍:http://wiki.jikexueyuan.com/project/easy-learn-algorithm/bucket-sort.html

 

 

桶排序主要用于有大量重复数据和明确知道数据边界的情况下,进行统计的排序

 

基本的算法思想是:

假设数据的边界的长度为arrayLen,那么就定义一个长度为ArrarLen+1的数组,用来记录数组中每个元素的出现的次数,统计完成后,将这个数组作为指标,进行输出。

 

源码如下:

/* 函数的参数说明

 * int array[] 需要进行排序的原数组

 * int ArrayLen 待排序的数组的数据域的宽度

 */

void TubSort(int array[], int ArrayLen)

{

    // 开辟一个比数据界限(ArrayLen)大一个的数组来存储每个元素出现的次数

    ++ArrayLen;

 

    int *arr = (int *)malloc(sizeof(int)*ArrayLen);

    if (arr == NULL)

        return;

    for (int i = 0; i < ArrayLen; ++i)

        arr[i] = 0;

    // 扫描数组中的每个数据,统计出现的次数

    for (int i = 0; i < MAXSIZE; ++i)

    {

        arr[array[i]]++;

    }

    for (int i = 0; i < ArrayLen; ++i)

    {

        for (int j = 0; j < arr[i]; ++j)

        {

            printf("%d ", i);

        }

        printf("\n");

    }

    free(arr);

}

桶排序总结

标签:

原文地址:http://www.cnblogs.com/bkcarlos/p/5875560.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!