亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

二分法的簡單實(shí)現(xiàn)-------遞歸和非遞歸

tanglijun / 2059人閱讀

摘要:寫二分法時(shí)需要判斷循環(huán)何時(shí)終止,如果每次都是,,會(huì)導(dǎo)致循環(huán)無法終止,所以此處用了。遞歸實(shí)現(xiàn)二分法目標(biāo)數(shù)組,目標(biāo)值,左邊界,右邊界輸入的數(shù)組是

//非遞歸實(shí)現(xiàn)二分法

public class Jianzhi{

   public static void main (String[] args){
        int[] num = {1,2,3,4,5,100};
        int m = find(num , 5) ;
        System.out.println(m);
    }
    
    public static int find(int[] list , int m ){
        if(list == null ){  
            System.out.println("輸入的數(shù)組長度出錯(cuò)。") ;
        }else if(list.length ==1 ){  //如果傳入的數(shù)組只有一個(gè)數(shù)字
            int n = list[0]==m?0:-1 ;
            return n ;
        }else {
            int left = 0 ;
            int right = list.length-1 ;
            while(left <= right){    
                int mid = (left + right)/ 2 ;
                if(list[mid]==m){
                    return mid ;
                }else if (list[mid]m){
                    right = mid - 1 ;
                }
            }
            System.out.println("未在數(shù)組中找到數(shù)字"+m);

        }
        return -1 ;
    }
}

//注意: 1.需要把mid放入循環(huán)中,不能放在循環(huán)體外,因?yàn)槊看味家裮id賦值給left或者right如果放在外面每次賦值的數(shù)都一樣會(huì)死循環(huán)。
// 2.寫二分法時(shí)需要判斷循環(huán)何時(shí)終止,如果每次都是left=mid,right=mid,會(huì)導(dǎo)致循環(huán)無法終止
// ,所以此處用了left=mid+1 right=mid-1 。這樣做還有一個(gè)好處:發(fā)現(xiàn)mid不是所要找的數(shù)時(shí),就直接舍棄,讓left和right不指向這個(gè)節(jié)點(diǎn)。

——————————————————————————————————————————————————

//遞歸實(shí)現(xiàn)二分法

public class Jianzhi{
    //                 (目標(biāo)數(shù)組,目標(biāo)值,左邊界,右邊界)
    public static int find(int[] list , int m ,int begin , int end) {
        if(list == null){
            System.out.println("輸入的數(shù)組是null");
            return -1 ;
        }
        if(list.length == 1 ){
            return list[0]==m?0:-1 ;
        }
        if(begin > end){
            return  -1 ;
        }
        int mid = (begin + end) / 2 ;
        if(list[mid] == m){
            return mid ;
        }else if (list[mid] < m ){
            return find(list , m ,mid+1 , end );
        }else if (list[mid] > m ){
            return find(list , m , begin , mid-1 );
        }
        return -1 ;
    }
    public static void main (String[] args){
        int[] num = {1,2,3,4,5,100};
        int m = find(num , 1,0,num.length-1) ;
        System.out.println(m);
    }

}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/71375.html

相關(guān)文章

  • PHP算法之二分查找

    摘要:二分查找的定義二分查找也稱折半查找,它是一種效率較高的查找方法。但是,折半查找要求線性表必須采用順序存儲(chǔ)結(jié)構(gòu),而且表中元素按關(guān)鍵字有序排列。算法的要求從上面的定義我們可以知道,滿足該算法的要求必須如下兩點(diǎn)必須采用順序存儲(chǔ)結(jié)構(gòu)。 showImg(https://segmentfault.com/img/remote/1460000016466416?w=800&h=191); 二分查找的...

    Soarkey 評(píng)論0 收藏0
  • 用 PHP 方式實(shí)現(xiàn)各類算法合集

    摘要:數(shù)據(jù)項(xiàng)是數(shù)據(jù)的不可分割的最小單位。數(shù)據(jù)項(xiàng)是對(duì)客觀事物某一方面特性的數(shù)據(jù)描述。數(shù)據(jù)對(duì)象是性質(zhì)相同的數(shù)據(jù)元素的集合,是數(shù)據(jù)的一個(gè)子集。數(shù)據(jù)的邏輯結(jié)構(gòu)數(shù)據(jù)元素之間的相互關(guān)系稱為邏輯結(jié)構(gòu)。 項(xiàng)目地址 https://github.com/m9rco/algo... 每周最少一更,求出題,求虐待 At least once a week, ask for problems and abuse 簡...

    Karrdy 評(píng)論0 收藏0
  • 用 PHP 方式實(shí)現(xiàn)各類算法合集

    摘要:數(shù)據(jù)項(xiàng)是數(shù)據(jù)的不可分割的最小單位。數(shù)據(jù)項(xiàng)是對(duì)客觀事物某一方面特性的數(shù)據(jù)描述。數(shù)據(jù)對(duì)象是性質(zhì)相同的數(shù)據(jù)元素的集合,是數(shù)據(jù)的一個(gè)子集。數(shù)據(jù)的邏輯結(jié)構(gòu)數(shù)據(jù)元素之間的相互關(guān)系稱為邏輯結(jié)構(gòu)。 項(xiàng)目地址 https://github.com/m9rco/algo... 每周最少一更,求出題,求虐待 At least once a week, ask for problems and abuse 簡...

    pakolagij 評(píng)論0 收藏0
  • 用 PHP 方式實(shí)現(xiàn)各類算法合集

    摘要:數(shù)據(jù)項(xiàng)是數(shù)據(jù)的不可分割的最小單位。數(shù)據(jù)項(xiàng)是對(duì)客觀事物某一方面特性的數(shù)據(jù)描述。數(shù)據(jù)對(duì)象是性質(zhì)相同的數(shù)據(jù)元素的集合,是數(shù)據(jù)的一個(gè)子集。數(shù)據(jù)的邏輯結(jié)構(gòu)數(shù)據(jù)元素之間的相互關(guān)系稱為邏輯結(jié)構(gòu)。 項(xiàng)目地址 https://github.com/m9rco/algo... 每周最少一更,求出題,求虐待 At least once a week, ask for problems and abuse 簡...

    leonardofed 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<