首页 > 编程语言 > 详细

桶排序

时间:2020-02-08 23:49:36      阅读:86      评论:0      收藏:0      [点我收藏+]

前言

原理后续补全

正文

public static double[] bucketSort(double[] array)
{
    double max = array[0];
    double min = array[0];
    for (var i = 1; i < array.Length; i++)
    {
        if (array[i] > max)
        {
            max = array[i];
        }
        if (array[i] < min)
        {
            min = array[i];
        }
    }
    var rang = max - min;
    // 桶的数量
    var bucketNum = array.Length;
    // 生成桶
    ArrayList bucketList= new ArrayList();
    for (int i = 0; i < bucketNum; i++)
    {
        bucketList.Add(new List<double>());
    }
    for (int i = 0; i < array.Length; i++)
    {
        int index=(int)((array[i] - min) / (rang / (bucketNum - 1)));
        List<double>  current= (List<double>)(bucketList[index]);
        current.Add(array[i]);
    }
    for (int i = 0; i < bucketList.Count; i++)
    {
        //对进行排序
        var current=(List<double>)(bucketList[i]);
        current.Sort();
    }
    double[] sortArray = new double[array.Length];
    var sortArrayIndex = 0;
    foreach (var list in bucketList)
    {
        foreach (var data in (List<double>)list)
        {
            sortArray[sortArrayIndex] = data;
            sortArrayIndex++;
        }
    }
    return sortArray;
}

桶排序

原文:https://www.cnblogs.com/aoximin/p/12285625.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!