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

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

排序算法 之 桶排序

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

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

以上就是桶排序的內容。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 远安县| 高雄县| 柳州市| 贺州市| 江油市| 柳林县| 庆城县| 济源市| 克什克腾旗| 永新县| 高雄市| 五莲县| 曲阜市| 宾川县| 西畴县| 崇信县| 涞源县| 延寿县| 清流县| 大丰市| 西乌珠穆沁旗| 孝感市| 仪征市| 广东省| 寻甸| 新建县| 黔西| 肃宁县| 佛冈县| 图片| 呼和浩特市| 巫山县| 丰原市| 民勤县| 阿拉尔市| 河曲县| 渭源县| 喀喇沁旗| 赤水市| 六安市| 奈曼旗|