国产探花免费观看_亚洲丰满少妇自慰呻吟_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的下標即元素的值    }}復制代碼

以上就是桶排序的內容。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 商丘市| 柏乡县| 乌什县| 西林县| 久治县| 银川市| 宝应县| 石嘴山市| 象山县| 航空| 颍上县| 绥芬河市| 麻城市| 浪卡子县| 谢通门县| 云阳县| 大安市| 通河县| 大庆市| 加查县| 淮滨县| 弥渡县| 浠水县| 改则县| 盱眙县| 洪雅县| 道孚县| 特克斯县| 平遥县| 循化| 新乡县| 堆龙德庆县| 锡林浩特市| 临泽县| 长寿区| 乌拉特中旗| 古田县| 丹棱县| 徐闻县| 内江市| 赤壁市|