快速排序(C )實現

2021-09-02 11:44:39 字數 974 閱讀 6987

在眾多的排序演算法中,快速排序由於有較好的效能(時間複雜度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...