經典演算法系列一 快速排序

2022-08-16 00:48:17 字數 639 閱讀 3130

寫乙個系列的經典演算法,共同學習!

1.快速排序

基本思想:

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

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

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

在網上看到一篇部落格,把快速排序命名為 挖坑填數+分治法,感覺很有道理,所以等會程式就按這兩部來寫。

先說說挖坑填數的思想:

1.i=l;j=r; 將基數挖出形成第乙個坑a[i].

2.j--由後向前找出比它的小的數,找到後挖出此數填前乙個坑a[i].

3.i++由前向後找出比它大的數,找到後挖出此數填前乙個坑a[j].

4.重複2,3步驟直到i==j,將基數填入a[i]中。

**實現

intadjust(

inta,

inti,

intj)

分治:int

quick_sort(

inta,

intl,

intr)

}這樣分兩步就把快速排序解決了,挺簡單的。當然這樣寫有點麻煩,可以簡單一些:

intquick(

inta,

intl,

intr)

}

經典演算法系列一 快速排序

寫乙個系列的經典演算法,共同學習!1.快速排序 基本思想 1.先從數列中取出乙個數作為基準數。2.分割槽過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊。3.再對左右區間重複第二步,直到各區間只有乙個數。在網上看到一篇部落格,把快速排序命名為 挖坑填數 分治法,感覺很有道理,所以...

白話經典演算法系列之 快速排序 快速搞定

總的說來,要直接默寫出快速排序還是有一定難度的,因為本人就自己的理解對快速排序作了下白話解釋,希望對大家理解有幫助,達到快速排序,快速搞定。快速排序是c.r.a.hoare於1962年提出的一種劃分交換排序。它採用了一種分治的策略,通常稱其為分治法 divide and conquermethod ...

白話經典演算法系列之六 快速排序 快速搞定

總的說來,要直接默寫出快速排序還是有一定難度的,因為本人就自己的理解對快速排序作了下白話解釋,希望對大家理解有幫助,達到快速排序,快速搞定。快速排序是c.r.a.hoare於1962年提出的一種劃分交換排序。它採用了一種分治的策略,通常稱其為分治法 divide and conquermethod ...