日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
      軟件
      軟件
      文章
      搜索

      首頁編程開發(fā)其它知識 → 一針見血分治算法:本質為“分而治之”

      一針見血分治算法:本質為“分而治之”

      相關軟件相關文章發(fā)表評論 來源:西西整理時間:2012/5/11 10:33:23字體大。A-A+

      作者:xiaoxian8023點擊:22次評論:0次標簽: 算法

      • 類型:編程輔助大。1.0M語言:中文 評分:9.0
      • 標簽:
      立即下載

      對于一個程序員來說,算法是必不可少的,F(xiàn)在的算法五花八門,讓人有點找不到北,不過歸根結底,也就那么幾類,其他算法都是這些算法的優(yōu)化或者派生。

          今天就跟大家說說分治法。

      【算法本質】

          分治法是得益于“大禹治水”的思想研究得來的算法。本質為“分而治之”。俗一點就是“大事化小,小事化了”。

      【設計思想】

          將一個難以直接解決的大問題分解成一些規(guī)模較小的相同問題以便各個擊破,分而治之。如果規(guī)模為n的問題,可以分解成k個子問題,1<k<=n,這些子問題相互獨立切與原問題相同,分治法產生的子問題,往往是原問題的較小模式,這就為遞歸技術提供了方便。

      【算法遞歸步驟】

          (一)分解。將原問題分解成一系列子問題。

          (二)求解。遞歸地求解各子問題。若子問題足夠小,則直接求解。

          (三)合并。將子問題的解合并成原問題的解。

      【沙場點兵】

      這是一道軟考題。QUICKSORT函數(shù)為快速排序,PARTITION函數(shù)作用為對數(shù)組A排序,并返回樞軸元素位置下標。


      舉一個實例:對數(shù)組A={ 9,3,5,8,7} 進行排序。

      跟著代碼走,現(xiàn)在p=0,r=4,所以p<r,執(zhí)行q=PARTITION(A,p,r),進入第一次排序。

      x=A[r]=7,i=p-1=-1,j的變化從p-》r-1,即0-》3。循環(huán)體內,比較A[j]與x的值:

      j=0時,A[j]=9>x。j=1進入下次循環(huán),如圖;

      j=1時,A[j]=3<x,i=i+1=0,交換A[i]和A[j]。j=2進入下次循環(huán),如圖;

      j=2時,A[j]=8>x,j=3進入下次循環(huán),如圖;

      j=3時,A[j]=4<x,i=i+1=2,交換A[i]和A[j],如圖。j=4>r-1,退出循環(huán);

      根據(jù)分治算法,由樞軸元素為界限,把原數(shù)組劃分為2組,樞軸元素左邊的元素>樞軸元素>樞軸元素右邊的元素。所以,我們現(xiàn)在要做的就是把x的值與i+1所在位置的元素進行交換。即A[i+1]與A[r]交換。

      最后把樞軸元素的下標返回給q,即q=2。第一趟排序完成。然后執(zhí)行QUICKSORT(A,p,q-1)和QUICKSORT(A,q+1,r)。即分別對劃分的子數(shù)組進行快速排序?赐暾膱D解:

      不難發(fā)現(xiàn),在分治策略中,由于子問題與原問題在結構和解法上的相似性,用分治方法解決的問題,大都采用了遞歸的形式。在各種排序方法中,如歸并排序、堆排序、快速排序等,都存在有分治的思想。

        相關評論

        閱讀本文后您有什么感想? 已有人給出評價!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評論

        最新評論

        發(fā)表評論 查看所有評論(0)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)