談談演算法中的快速排序

2021-10-08 03:35:52 字數 958 閱讀 5933

快速排序

快速排序是c.r.a.hoare於2023年提出的一種劃分交換排序。它採用了一種分治的策略,通常稱其為分治法(divide-and-conquermethod)。

快速排序使用分治法把乙個陣列,分為兩個子陣列,該方法的基本思想是:

1.先從數列中取出乙個數作為基準數。

2.分割槽過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊。

3.再對左右區間重複第二步,直到各區間只有乙個數。

public

static

int[

]quick_sort2

(int

array,

int start,

int end)

if(low < high)

/***

* 從左向右查詢:

* 因為陣列中第乙個數已經標記為基準數,所以從第二個數開始查詢。

* 找到第乙個不小於基準數的位置,進行陣列中的值互換

* array[low] <= mid:當這個條件不成立時,就是左邊數停止增加的時候,

* 然後對指定位置上的值進行操作互換

* array[high--] = array[low];

*/while

(low < high && array[low]

<= mid)

if(low < high)

} array[low]

= mid;

//使用遞迴

quick_sort2

(array, start, end -1)

;quick_sort2

(array, start +

1, end);}

return array;

}

Hadoop中的快速排序演算法

在hadoop中,排序是mapreduce框架中最重要的操作之一,map task和reduce task都會對資料按照key排序,不管邏輯上是否真的需要排序,任何程式中的資料都會被排序,這是hadoop的預設行為。b mapreduce中使用了兩種排序演算法 快速排序和優先佇列。在map和redu...

python中快速排序演算法

相比歸併排序來說快速排序在資料量小的情況下是不佔優勢的,因為快速排序的時間複雜度最好的情況下是n log n 但是在處理大量資料的時候歸併排序就不如時間排序了,因為在空間複雜度上面歸併排序消耗資源更多.所以我們可以做乙個判斷 如果列表長度小於某個數值的時候走if分支 而大於某個值的時候走else分支...

排序演算法 快速排序演算法

網際網路的大型公司還在火熱招聘中,參與了一次又一次的筆試,都不通過,我還是太菜!作為程式設計人員,需要邁過去 資料結構與演算法 這個坎,畢竟,筆試不會真的很虧,加油吧,少些水,多點實操。一 快速排序演算法思想 從一組資料中找出乙個基準值,一般是選擇中間值作為基準值,然後從左到右將值與基準值進行比較,...