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);
}
}