演算法學習(排序三)快速排序

2021-08-03 00:02:19 字數 531 閱讀 1014

快速排序和歸併排序一樣,都用到了遞迴的方法,具體做法是先選取乙個數為關鍵資料(一般選擇第乙個數),將陣列中小於該數的放在左側,大於該數的放在右側;排序完成後對左右兩個部分進一步的做如上操作

/**

快速排序,指定乙個位置,經過排序後,是該位置的數的左邊全部是小於該數,郵編全部是大於該數

@param array 需要排序的陣列

@param left 左邊座標

@param right 右邊座標

*/void quicksort (int *array, int left, int right)

//todo 5.最後將儲存的key放在low處,此時,在key的左邊的都是小於key的數,右邊的都是大於key的數

array[low] = key;

//todo 6.將左側和右側繼續排序

quicksort(array, left, low - 1);

quicksort(array, low + 1, right);

}

排序演算法學習 快速排序

快速排序 作為氣泡排序的一種改進 通過設定乙個標誌值 通常為陣列第乙個元素pivot 一次快排將陣列分成兩個部分,一部分 公升序 前一部分 小於標誌值pivot,另一部分大於標誌值 公升序 後面部分 各部分內部可以是 通常也是 無序的。通過遞迴地呼叫這樣的排序,使得最終陣列所有的元素有序。一次具體的...

排序演算法學習 快速排序

今天演算法實驗重新學習了快速排序演算法,對此有了一些理解,把它記錄在此以供日後學習。如下為快速排序演算法的被呼叫部分。int get loc int arr int low,int high arr low arr i arr i temp return i 返回基準位置 演算法本質是從後往前與從前...

演算法學習 快速排序

快速排序 分治演算法 const int n 1e6 10 int a n a 待排序陣列,l 排序陣列的起始下標,r 排序陣列的結束下標 void quick sort int a,int l,int r 遞迴的終止條件 int x a l 選取排序的比較物件 int i l 1 設定排序的左指標...