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

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

排序算法 之 桶排序

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

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

以上就是桶排序的內容。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 扎鲁特旗| 元朗区| 东山县| 三河市| 辽阳县| 叶城县| 青神县| 彭州市| 綦江县| 彝良县| 巨野县| 新昌县| 科技| 泸溪县| 准格尔旗| 甘泉县| 塔城市| 来宾市| 高台县| 依安县| 平邑县| 华亭县| 马关县| 岳阳市| 九龙县| 叙永县| 法库县| 交城县| 会东县| 梁山县| 宁河县| 巴南区| 图们市| 霍林郭勒市| 双流县| 沐川县| 大洼县| 甘谷县| 康乐县| 舞钢市| 景东|