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

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

排序算法 之 桶排序

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

原文地址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的下標即元素的值    }}復制代碼

以上就是桶排序的內容。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永州市| 湖北省| 商都县| 石城县| 巩义市| 姜堰市| 南乐县| 丁青县| 旺苍县| 霍城县| 马尔康县| 都江堰市| 河北区| 永平县| 崇阳县| 行唐县| 浦县| 平陆县| 精河县| 临湘市| 万全县| 枣阳市| 军事| 宝山区| 淅川县| 文昌市| 石景山区| 蓬莱市| 沅江市| 上栗县| 鹰潭市| 乌拉特后旗| 抚顺县| 疏附县| 灵台县| 芦山县| 苍南县| 喀什市| 凤山县| 定兴县| 大渡口区|