昨天練習了簡單的遞迴練習,今天來真實的應用在排序當中吧,之前練習過氣泡排序法跟挑選排序法,而今天來寫一個新的快速搜尋法。
快速搜尋法主要分成三個步驟,第一步:先找出一個pivot值,讓數列裡的所有元素跟它做比較。第二步:比它大或比它小的數分作成二個新的數列。第三步:再分別找出pivot值再繼續比較分堆。
這個演算法屬於divide and conquer ,簡單來說就是將大問題分成小問題再分別解決,因為它就是將一大堆數字,先找中間的數做依據來分堆,每堆再做同樣的事,最後再全部合起來,是個蠻聰明的辦法。
然而實作上又有出現問題,真D討厭,這次遇到的問題是有時會對有時又會出錯TUT
以下是執行五次的結果
==還每次出現問題的地方都不同,真的是debug到懷疑人生,沒關係我相信我終究會克服的
先附上程式碼還需要多花時間研究~~~