日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

由快速排序到分治思想

 堂tj77m7tpne37 2018-01-12



   快速排序是一種基于分治思想的排序算法 它主要分為以下幾步

1、一個(gè)數(shù)組按切分元素分成兩個(gè)數(shù)組,一個(gè)數(shù)組是大于切分元素的,另一個(gè)數(shù)組是小于切分元素的,

2、然后將這兩個(gè)部分按上面的思路獨(dú)立排序。

3、并將有序的子數(shù)組歸并 得到一個(gè)完整的數(shù)組。

這中間的關(guān)鍵就在于切分。

           

代碼實(shí)現(xiàn)

public class Quick {

       private static void sort(Comparable[] a, int l0, int l1) {

              // TODO Auto-generated method stub

              if(l0 > l1) return;   //做基本的判斷

              int l2=partition(a,l0,l1);  //調(diào)用方法實(shí)現(xiàn)按切分 得到最終a所在位置

              sort(a,l0,l2-1);   //排序比a小的數(shù)組

              sort(a,l2 1,l1);   //排序比a大的數(shù)組

       }

       private static int partition(Comparable[] a, int l0, int l1) {  //定義切分方法

              int i=l0;   int j=l1 1; //定義左右指針

              Comparable  v=a[0];  //獲得切分元素

              while(true){   掃描左右

                     while(less(a[ i],v))  if(i==l1)  break;

//調(diào)用 less方法做判斷a[i] 和v 直到a[i]大于v時(shí) 或者 i 到數(shù)組末尾時(shí)才停止

                     while(less(v,a[j--])) if(j==l0)  break;

//調(diào)用 less方法做判斷a[j] 和v 直到a[j]小于v時(shí) 或者 i 到數(shù)組頭時(shí)才停止

                     if(i>j)  break;   //做判斷  如果作為切分調(diào)出循環(huán)

                     exch(a,i,j);   調(diào)用exch()方法來吧a[i]和a[j] 交換位置

              }

              exch(a,l0,j);   //調(diào)用exch()方法 將v放入正確的位置

              return j;

       }

}


快速排序的特性

復(fù)雜度 NlgN 空間復(fù)雜度 lgN 其運(yùn)行效率與切分元素值有關(guān)  一把在排序之前先隨機(jī)整個(gè)數(shù)組。 快速排序也是最快的通用排序算法。


分治思想理念                       

分治,字面上的解釋是“分而治之”,就是把一個(gè)復(fù)雜的問題分成兩個(gè)或更多的相同或相似的子問題。所以他有三個(gè)要點(diǎn)

1、劃分步:把輸入的問題劃分為k個(gè)子問題,并盡量使這k個(gè)子問題的規(guī)模大致相同

2、治理步:調(diào)用處理方法來處理問題。

3、組合步:組合步把各個(gè)子問題的解組合起來。


從快速排序到分治

在快速排序中將一個(gè)數(shù)組按切分元素分成兩個(gè)數(shù)組就是在不同的劃分步。然后將這兩個(gè)部分按上面的思路獨(dú)立排序  這就是治理步。 最后將所有的子數(shù)組歸并到一個(gè)數(shù)組 就是組合步。


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請遵守用戶 評(píng)論公約

    類似文章 更多