java面试阿里第1期--代码面(1)选择排序(2)判断二进制里1的个数(3)输入String判断是不是ipv4地址

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/JAVA_I_want/article/details/102659477

1.选择排序

import java.util.Arrays;
public class TestSelectSort {
    //测试选择排序
    public static void selectSort(int[]arr){
        for(int i=0;i<arr.length-1;i++){
           int index=i; //排序位置
            //找出每轮最小的值
            for(int j=i+1;j<arr.length;j++){
                if(arr[j]<arr[index]){
                    index=j;//当前比较中最小的值下标索引
                }
            }
            //每轮比较完成,进行交换
            int temp=arr[i];
            arr[i]=arr[index];
            arr[index]=temp;
        }
        System.out.println(Arrays.toString(arr));
    }

    public static void main(String[] args) {
        int [] arr = {49,38,65,97,76,13,27,49};
        selectSort(arr);
    }
}


2.判断二进制里1的个数

1. 使用移位操作符(右移操作)
让二进制的每一位&(逻辑与)1,如果得到的结果为数字“1”,则二进制数该位有一个“1”。

public class TestCount1 {
    public static void main(String[] args) {
        int num=7;//要计算1的个数的数字
        int count=0;//计数器
        while(num>0){
            if((num&1)==1){
                count++;
            }
            num=num>>1;
        }
        System.out.println(count);
    }
}

2.最高效算法(推荐)

让我们要计算的数与该数减一 进行&运算,当计算结果为0时,程序结束。

public class TestCount1 {
    public static void main(String[] args) {
        int num=7;//要计算1的个数的数字
        int count=0;//计数器

        while(num>0){
            num=num&(num-1);
            count++;
        }
        System.out.println(count);
    }
}

3.输入String判断是不是ipv4地址

如果有读者不知道什么是ipv4,请参考链接: https://baike.baidu.com/item/IPv4/422599?fr=aladdin

public class TestIPV4 {

    public static boolean isIpv4(String str){
        if(str==null||str.length()==0) return false;
        //对字符串进行分割
        String[] split = str.split("\\.");
        //ipv4必须符合192.168.43.157这种格式
        if(split.length!=4) return false;
        for(int i=0;i<split.length;i++){
            int n=Integer.parseInt(split[i]);
            //ipv4地址取值范围为0-255
            if(n<0||n>255) return false;
        }
        return true;
    }
    public static void main(String[] args) {
        String str="192.168.43.157";
        boolean ipv4 = isIpv4(str);
        System.out.println(ipv4);
    }
}

猜你喜欢

转载自blog.csdn.net/JAVA_I_want/article/details/102659477
今日推荐