zoukankan      html  css  js  c++  java
  • 桶排序总结

    数据结构排序算法之——桶排序(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(" ");

        }

        free(arr);

    }

  • 相关阅读:
    笔记
    软件工程第二次作业
    现代软件工程 第一周作业
    2019春季学期期末总结
    2019第十四周作业
    2019第十二周左右
    2019第十一周作业
    2019第十周作业
    2019第九周作业
    2019第八周作业
  • 原文地址:https://www.cnblogs.com/bkcarlos/p/5875560.html
Copyright © 2011-2022 走看看