在眾多的排序演算法中,快速排序由於有較好的效能(時間複雜度o(nlogn),優於常見的排序演算法),且演算法編碼難度較小,常在工程實踐和招聘中使用或考察。這裡手擼並上傳了乙個快速排序演算法的c#實現。主要參考了wiki 百科的「快速排序」,以及嚴蔚敏老師《資料結構》一書對快速排序的講解。原始碼如下:
static void main(string args)
; // 輸出未排序陣列
for (int i = 0; i < numbers.length; i++)
// 對該陣列進行排序
quicksort(numbers, 0, numbers.length - 1);
// 輸出已排序陣列
console.write("\n--------------------------\n");
for (int i = 0; i < numbers.length; i++)
}static void quicksort(int numbers, int start, int end)
if (start < 0 || end < 0 || start >= end)
int pivort = start;
int mid = partition(numbers, start, end, pivort);// mid 已經定位
quicksort(numbers, start, mid - 1);
quicksort(numbers, mid + 1, end);
}static int partition(int numbers, int start, int end, int pivort)
}swap(numbers, storeindex, end);
return storeindex;
}static void swap(int array, int indexx, int indexy)
排序 快速排序,C 實現
本文 的github位址 基本思想 快速排序 是對 氣泡排序 的改進。基本原理 基於分治法,在待排線性表中取乙個元素pivot作為樞軸值,通過一趟排序將待排線性表劃分為獨立的兩部分,第一部分的所有元素小於pivot,第二部分的所有元素大於等於pivot,pivot位於其最終位置。遞迴對兩個子表做快速...
快速排序 c 實現
快速排序思想 基於分治策略,對氣泡排序的一種改進。對於要排序的乙個序列,從中選一值進行排序,將其放入到正確的位置position。然後以position為界,對左右兩部分再做排序。直到劃分的長度為1。步驟 設有一待排序的序列 1.分別設定low hight指向序列的最左端 最右端 從序列中選乙個進行...
快速排序(C 實現)
include using namespace std void swap int a,int b int sort int begin,int end if beginwhile beginif begin return begin void quicksort int begin,int end...