国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

排序算法 之 桶排序

2019-11-10 20:34:33
字體:
來源:轉載
供稿:網友

原文地址http://www.cnblogs.com/liukemng/p/3724051.html

桶排序是一種效率很高的排序算法,它的時間復雜度為O(n),但桶排序有一定的限制,只有當待排序序列的元素為0到某一確定取值范圍的整數時才適用,典型的例子比如成績的排序等。

算法思想:

設待排序序列的元素取值范圍為0到m,則我們新建一個大小為m+1的臨時數組并把初始值都設為0,遍歷待排序序列,把待排序序列中元素的值作為臨時數組的下標,找出臨時數組中對應該下標的元素使之+1;然后遍歷臨時數組,把臨時數組中元素大于0的下標作為值按次序依次填入待排序數組,元素的值作為重復填入該下標的次數,遍歷完成則排序結束序列有序。

代碼實現:

復制代碼
/// <summary>/// 桶排序/// </summary>/// <param name="intArray"></param>/// <param name="max"></param>public static void BucketSort(int[] intArray, int max) {    //聲明一個長度為max+1的數組,并把數組中的元素全部初始化為0    int[] tempArray = Enumerable.Repeat(0, max+1).ToArray();    for (int i = 0; i < intArray.Length; i++)        tempArray[intArray[i]] += 1;//將tempArray下標中等于intArray[i]的元素+1    int insertIndex = 0;    for (int j = 0; j < tempArray.Length; j++)    {        for (int k = 0; k < tempArray[j]; k++)            intArray[insertIndex++] = j;//將排序后的元素插入數組tempArray的下標即元素的值    }}復制代碼

以上就是桶排序的內容。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 克拉玛依市| 惠安县| 牟定县| 徐闻县| 临猗县| 阆中市| 海林市| 桂平市| 治县。| 浙江省| 交城县| 泾川县| 大悟县| 饶河县| 武定县| 杭州市| 汝南县| 日土县| 高碑店市| 怀柔区| 宁化县| 新兴县| 呈贡县| 资中县| 尉氏县| 阜南县| 吉安县| 丹东市| 宁安市| 廊坊市| 留坝县| 昌乐县| 抚松县| 荥经县| 天气| 缙云县| 漠河县| 班玛县| 衡阳县| 响水县| 喀喇沁旗|