快速排序算法是基于分治策略的另一個(gè)排序算法。其基本思想是,對(duì)于輸入的字?jǐn)?shù)組a[p:r],按以下3個(gè)步驟進(jìn)行排序:
(1)分解:以a[p]為基準(zhǔn)元素將a[p:r]劃分成3段a[p:q-1],a[q]和a[q+1:r],使得a[p:q-1]中任何元素小于等于a[q],a[q+1:r],中的任何元素大于等于a[q]。下標(biāo)q在劃分過(guò)程中確定
(2)遞歸求解:通過(guò)遞歸調(diào)用快速排序算法,分別對(duì)a[p:q-1]和a[q+1:r]進(jìn)行排序
(3)合并:在a[p:q-1]和a[q+1:r]已經(jīng)排好序的情況下,不需要執(zhí)行任何運(yùn)算,a[p:r]就已排好序
平均算法復(fù)雜度O(nlogn)
標(biāo)簽:
快速排序
分
算法
策略
上傳時(shí)間:
2016-07-09
上傳用戶(hù):wuyuying