<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    春風(fēng)博客

    春天里,百花香...

    導(dǎo)航

    <2008年6月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    293012345

    統(tǒng)計(jì)

    公告

    MAIL: junglesong@gmail.com
    MSN: junglesong_5@hotmail.com

    Locations of visitors to this page

    常用鏈接

    留言簿(11)

    隨筆分類(lèi)(224)

    隨筆檔案(126)

    個(gè)人軟件下載

    我的其它博客

    我的鄰居們

    最新隨筆

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    使用位圖法判斷整形數(shù)組是否存在重復(fù)

    判斷集合中存在重復(fù)是常見(jiàn)編程任務(wù)之一,當(dāng)集合中數(shù)據(jù)量比較大時(shí)我們通常希望少進(jìn)行幾次掃描,這時(shí)雙重循環(huán)法就不可取了。

    位圖法比較適合于這種情況,它的做法是按照集合中最大元素max創(chuàng)建一個(gè)長(zhǎng)度為max+1的新數(shù)組,然后再次掃描原數(shù)組,遇到幾就給新數(shù)組的第幾位置上1,如遇到5就給新數(shù)組的第六個(gè)元素置1,這樣下次再遇到5想置位時(shí)發(fā)現(xiàn)新數(shù)組的第六個(gè)元素已經(jīng)是1了,這說(shuō)明這次的數(shù)據(jù)肯定和以前的數(shù)據(jù)存在著重復(fù)。這種給新數(shù)組初始化時(shí)置零其后置一的做法類(lèi)似于位圖的處理方法故稱(chēng)位圖法。它的運(yùn)算次數(shù)最壞的情況為2N。如果已知數(shù)組的最大值即能事先給新數(shù)組定長(zhǎng)的話效率還能提高一倍。

    示例代碼如下:

    package com.sitinspring;

    /**
     * 數(shù)組重復(fù)探測(cè),時(shí)間復(fù)雜度為O(n)
     * 
    @author: sitinspring(junglesong@gmail.com)
     * @date: 2008-6-18-上午03:24:07
     
    */

    public class DuplicatedArrayTest{
        
    public static void main(String[] args){
            
    int[][] arr={
                    
    {1,2,3,5,3,5,56,534,3,32},
                    
    {1,2,3,5},
                    
    {1,2,3,5,3,5},
                    
    {0,0,1,2,3,5,56,534,78,32},
            }
    ;
            
            
    for(int i=0;i<arr.length;i++){
                System.out.print(
    "數(shù)組:");
                
    for(int temp:arr[i]){
                    System.out.print(temp
    +",");
                }

                System.out.print(
    "");
                System.out.print(hasDuplicatedItem(arr[i])
    ?"存在":"不存在");
                System.out.print(
    "重復(fù)元素.\n");
            }

        }

        
        
    /**
         * 判斷整形數(shù)組中是否有重復(fù)數(shù)據(jù),時(shí)間復(fù)雜度為O(n)
         * 
    @param arr
         * 
    @return
         
    */

        
    public static boolean hasDuplicatedItem(int[] arr){
            
    // 掃描數(shù)組找最大值
            int max=arr[0];        
            
    for(int i=1;i<arr.length;i++){
                
    if(arr[i]>max){
                    max
    =arr[i];
                }

            }

            
            
    // 按最大值創(chuàng)建一個(gè)新數(shù)組
            int[] bitArray=new int[max+1];
            
            
    // 按值向新數(shù)組中添值,如value為3則bitArray[3]=1
            for(int value:arr){
                
    if(bitArray[value]!=0){
                    
    // 如果value指向的位置已經(jīng)不是零,說(shuō)明之前已經(jīng)給這一塊置1了,立即返回true表示數(shù)組有重復(fù)
                    return true;
                }

                
    else{
                    
    // value指向的位置是零,則置為1表示這一位已經(jīng)有數(shù)存在了
                    bitArray[value]=1;
                }

            }
            
            
            
    return false;
        }

    }

    輸出:
    數(shù)組:1,2,3,5,3,5,56,534,3,32,中存在重復(fù)元素.
    數(shù)組:
    1,2,3,5,中不存在重復(fù)元素.
    數(shù)組:
    1,2,3,5,3,5,中存在重復(fù)元素.
    數(shù)組:
    0,0,1,2,3,5,56,534,78,32,中存在重復(fù)元素.

    題外話:
    今天法國(guó)真是太背了,為它送行吧!但愿它能早日迎來(lái)一個(gè)新的齊達(dá)內(nèi)。

    posted on 2008-06-18 04:11 sitinspring 閱讀(1213) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    sitinspring(http://www.tkk7.com)原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處.
    主站蜘蛛池模板: 亚洲国产亚洲片在线观看播放| 女人18特级一级毛片免费视频| 中文字幕免费在线视频| 青青久久精品国产免费看| 国产亚洲欧美日韩亚洲中文色| 亚洲丁香婷婷综合久久| 亚洲国产精品无码中文lv| 久久亚洲AV成人无码国产最大| 亚洲av永久无码一区二区三区| 亚洲一卡一卡二新区无人区| 亚洲精华国产精华精华液好用| 亚洲色欲色欱wwW在线| 亚洲AV无码专区在线厂| 美女裸体无遮挡免费视频网站| 欧洲乱码伦视频免费国产| AAAAA级少妇高潮大片免费看 | 国产国拍亚洲精品福利 | 在线亚洲97se亚洲综合在线 | 亚洲aⅴ天堂av天堂无码麻豆| 亚洲AV无码一区二区三区牲色| 亚洲av纯肉无码精品动漫| 精品一区二区三区无码免费直播| 未满十八私人高清免费影院| 成人区精品一区二区不卡亚洲| 亚洲精品人成网线在线播放va| 免费人成大片在线观看播放电影| 香蕉免费看一区二区三区| 少妇人妻偷人精品免费视频| 中文字幕视频免费| 免费电视剧在线观看| 国产成人免费片在线观看| 在线观看国产区亚洲一区成人 | 亚洲美女视频免费| 亚洲一区二区三区乱码在线欧洲| 亚洲AV无码专区在线电影成人| 一级一级一级毛片免费毛片| 最近免费字幕中文大全视频| 超pen个人视频国产免费观看| 亚洲中文久久精品无码| 亚洲午夜精品国产电影在线观看| 在线观看亚洲电影|