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

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

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

    weidagang2046的專欄

    物格而后知致
    隨筆 - 8, 文章 - 409, 評論 - 101, 引用 - 0
    數據加載中……

    位圖(bitmap)排序

    放假之前從圖書館借來《編程珠璣》,開篇便把我震住,作者以位圖排序優雅地解決了一個現實問題:
    有3000萬個沒有重復的電話號碼,1M內存,外存比較充裕,需要將這3000萬個電話排序
    借此作者引出了位圖排序:
    位圖排序是指以一個N位長的串,每位上以“1”或“0”表示需要排序的集合(后簡稱“集合”)中的數。比如集合為{2,7,4,9,1,10},則生成一個10位的串,將第2、7、4、9、1、10位置為“1”,其余位置為“0”,這樣當把串中所有位都置完后,排序也自動完成了(因為串的下標是有序的):1101001011
    位圖排序的代碼如下:

    public void bitmapSort(int[] set){
      
    int max=max(set);
      
    int[] array=new int[max];
      
      
    for(int i=0;i<array.length;i++)
        array[i]
    =0;

      
    for(int i=0;i<set.length;i++)
        array[
    set[i]]=1;

      
    for(int i=0;i<array.length;i++){
        
    if(array[i]==1)
          System.
    out.println(i+” ”);
      }

    }


    private int max(int[] set){
      
    // return the maxium integer of the set
    }


    可以看出,位圖排序的時間復雜度是O(n)的,比一般的排序都快,但它是以空間換時間(需要一個N位的串),而且有一些限制,比如排序前集合大小最好已知,而且集合中元素的最大重復次數必須已知,最好是稠集數據(不然空間浪費很大)。

    posted on 2005-10-28 15:25 weidagang2046 閱讀(638) 評論(0)  編輯  收藏 所屬分類: Others

    主站蜘蛛池模板: 久久久亚洲欧洲日产国码二区| 最近免费字幕中文大全| 色婷婷亚洲十月十月色天| 全部免费国产潢色一级| 亚洲第一成年免费网站| 先锋影音资源片午夜在线观看视频免费播放| 亚洲AV成人精品日韩一区| 亚洲国产成人久久77| 在线免费观看亚洲| 亚洲VA中文字幕无码毛片| 中文字幕在亚洲第一在线| 免费又黄又爽的视频| 国产精品免费看久久久无码| 亚洲免费综合色在线视频| 日本高清在线免费| 18禁美女黄网站色大片免费观看| 嫩草在线视频www免费看| 四虎影视久久久免费| 全黄A免费一级毛片| 看一级毛片免费观看视频| 青青青亚洲精品国产| 亚洲国产午夜精品理论片在线播放 | 免费无遮挡无码视频网站| 999久久久免费精品国产| 2021精品国产品免费观看| 十九岁在线观看免费完整版电影| 国产羞羞的视频在线观看免费| 中出五十路免费视频| 天黑黑影院在线观看视频高清免费| 一本一道dvd在线观看免费视频| 免费大片av手机看片| 一二三区免费视频| 国产无遮挡色视频免费观看性色| 一区二区三区免费看| 91成人免费观看在线观看| 中文字幕无码免费久久| 久久国产精品一区免费下载| 99精品视频免费在线观看| 99re热精品视频国产免费| 亚洲视频在线免费看| 国产无人区码卡二卡三卡免费|