Java 位图算法

作者: 大猪大猪 | 来源:发表于2018-06-26 23:08 被阅读88次

    这里使用java来实现一个位图算法

    例子

    @Test
        public void testBitMap(){
            int N = 1024;//位图存储的最大数字
            int map[] = new int[N/32];
            System.out.println(checkBit(map,1));
            setBit(map,1);
            setBit(map,10);
            setBit(map,4);
            System.out.println(checkBit(map,1));
            sortBitArray(map);
        }
    
        private boolean checkBit(int[] arr,int val){
            return (arr[val/32] & (1<<val%32))!=0;
        }
        private void setBit(int[] arr,int val){
            arr[val/32] |= 1<<val%32;
        }
        public void sortBitArray(int[] bitArray) {
            int count = 0;
            for (int i = 0; i < 1024; i++) {
                if (checkBit(bitArray, i)) {
                    System.out.print(count + "\t");
                }
                count++;
            }
        }
    

    运行测试结果

    false
    true
    1   4   10  
    

    相关文章

      网友评论

        本文标题:Java 位图算法

        本文链接:https://www.haomeiwen.com/subject/bsjvyftx.html