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

    前言

    原理后续补全

    正文

    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;
    }
    
  • 相关阅读:
    常见的兼容问题
    css3新增伪类
    完美的js运动框架
    C++ 常用宏
    多线程代码段 自清理线程
    寒假自学(十一)
    寒假自学(十)
    寒假自学(九)
    寒假自学(八)
    寒假自学(七)
  • 原文地址:https://www.cnblogs.com/aoximin/p/12285625.html
Copyright © 2011-2022 走看看