快速排序演算法思想

2021-09-16 13:24:04 字數 480 閱讀 1275

一、快速排序遞迴演算法

1、對下列採用快速排序

2、可以把最左邊 4 作為基數 然後分別從兩邊出發進行檢索(一定要從右邊開始 如果從左邊開始的話等下結果為 53241

因為我們要使左邊的數小於基數 從左邊開始 我們檢索是在大於基數那個位置停止 這時和基數交換 使左邊的數大於基數 導致結果出錯)

首先要從2開始檢索向左分別和基數(4)比較,如果小於基數(4),則和4交換,結果為

再從右邊出發 2出發向右檢索找到乙個比基數(4)大得數(5>4)和4交換結果

這個時候 回到右邊檢索 找到乙個比基數小的數  和基數交換 結果為

這個時候指標相遇 第一次排序結束 這個時候 4 (基數)的位置已經正確了

只要我們分別對 4 的左邊和右邊按照上面的方法進行排序 就能得出正確結果

這可以用遞迴實現 條件結束為 if(右邊》=左邊)即指標相遇 這就是快速排序演算法。

排序演算法思想記錄 快速排序演算法

思路 選取陣列中任意乙個數字作為對比位pivot,然後定義兩個指標位left right,分別從陣列開始和結束位置向內掃瞄,每次先動乙個指標位,如right遇到小於pivot的值,將該值存放到左指標處,接著左指標向內位移,遇到大於pivot的值存放至右指標處,依次迴圈到left與right重合,則完...

快速排序思想

本文通俗易懂,但有的描述有問題,轉至 高快省的排序演算法 有沒有既不浪費空間又可以快一點的排序演算法呢?那就是 快速排序 啦!光聽這個名字是不是就覺得很高階呢。假設我們現在對 6 1 2 7 9 3 4 5 10 8 這個10個數進行排序。首先在這個序列中隨便找乙個數作為基準數 不要被這個名詞嚇到了...

演算法分析 分治思想之快速排序

優化乙個演算法的最根本的原理就是減少演算法的基本操作。分治法的設計思想是,將乙個難以直接解決的大問題,分割成一些規模較小的相同問題,以便各個擊破,分而治之。於是,在快速排序中,我們通過分割陣列的思路來將大問題分割成小規模的問題,與二分搜尋法類似的是,在二分法 中,我們需要進行的操作是搜尋,是在已經排...