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

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

C#寫快速排序

2019-11-14 13:55:53
字體:
來源:轉載
供稿:網友
//先上快排代碼------------------------------------------------------------------------
public
static void QuickSort(int leftIndex, int rightIndex, int[] arrayNeedSort) { int i, j, t, temp; if (leftIndex > rightIndex) { return; } temp = arrayNeedSort[leftIndex];//基準數 i = leftIndex; j = rightIndex; while (i != j) //如果左側索引和右側索引不想等 { while (arrayNeedSort[j] >= temp && i < j) //右側索引先行 從右側找到第一個比基準數temp小的 到此索引位置停下來 { j--; //如果說大于等于 基準數temp 則往左走 也就是索引j-1 } while (arrayNeedSort[i] <= temp && i < j) //左側索引后行 從左側找到比基準數大的 到此索引停下來 { i++; //如果說小于等于temp基準數的情況 索引繼續向右走 i+1 } if (i < j) { t = arrayNeedSort[i]; //交換左右索引位置的數據 也就是說交換左側大于temp的第一個索引 右側小于temp的第一個索引的數據 arrayNeedSort[i] = arrayNeedSort[j]; arrayNeedSort[j] = t; } } //基準數歸位(跳出前面i!=j的循環,就是i=j相遇的情況,如果相遇,那就把基準數的位置和 相遇點的索引位置的索引交換) arrayNeedSort[leftIndex] = arrayNeedSort[i]; arrayNeedSort[i] = temp; QuickSort(leftIndex, i - 1, arrayNeedSort); //繼續處理剛剛歸位的左側的數組的排序 QuickSort(i + 1, rightIndex, arrayNeedSort); //繼續處理剛剛歸位的基準數的右側的數組排序 遞歸的過程 }

調用快排方法

 int[] arrayNeedSort = new[] { 6, 2, 3, 9, 6, 54, 9, 34, 7, 3, 0, 6, 4, 2, 9, 8, 1, 3 };            int i;            int arrayLength = arrayNeedSort.Length;            QuickSort(0, arrayLength-1, arrayNeedSort);            foreach (var item in arrayNeedSort)            {                Console.WriteLine(item);            }            Console.ReadKey();

輸出結果

快排的平均時間復雜度O(NlogN).在最壞的情況下,和冒泡排序一樣都是O(N^)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宝丰县| 内丘县| 普安县| 绥棱县| 灵台县| 尖扎县| 涞水县| 常宁市| 曲靖市| 二连浩特市| 磴口县| 达拉特旗| 临夏市| 师宗县| 井冈山市| 锡林浩特市| 天津市| 荣昌县| 准格尔旗| 镇原县| 乌兰察布市| 民和| 麻阳| 元谋县| 七台河市| 河南省| 长宁区| 鄄城县| 苏尼特右旗| 河北区| 高州市| 宁陵县| 延吉市| 巩义市| 漳州市| 贵南县| 雷波县| 碌曲县| 防城港市| 华阴市| 渭源县|