1. 程式人生 > >java基礎(二):一些簡單的固定方法

java基礎(二):一些簡單的固定方法

1.不通過第三個變數交換2個變數值

        a = a+b;
        b = a-b;
        a = a-b;

2.列印正三角

for(int i = 1;i<=5;i++){
    for(int j = 1;j<=i;j++){
        System.out.print("*");
    }
    System.out.println();
}

3.列印倒三角

for(int i = 1;i<=5;i++){
    for(int j = i;j<=5;j++){
        System.out.print("*");
    }
    System.out.println();
}

4.十進位制轉十六進位制

char[] arr = new char[8];
int index = arr.length - 1;
String str = "";
int temp;
while(num != 0){
    temp = num & 15;
    if(temp > 9){
        arr[--index] = temp - 10 + 'A';
    }else{
        arr[--index] = (char)(temp - '0');
    }
    num = num >> 4;
}
for(int i = index ;i < arr.length;i++){
    str += arr[i];
}

5.陣列排序(選擇、冒泡)
    選擇:
    for(int i = 0;i < arr.length - 1;i++){
        for(int j = i + 1; j < arr.length;j++){
            if(arr[i]>arr[j]){
                交換
            }
        }
    }
    冒泡:
    for(int i = 0;i < arr.length - 1;i++){
        for(int j = 0; j < arr.length-1-i;j++){
            if(arr[i]>arr[j]){
                交換
            }
        }
    }

6.陣列查詢(普通、二分)
    普通:
    for(int i = 0;i<arr.length;i++){
        if(arr[i] == key){
            return i+1;
        }
    }
    二分:
    int min = 0;
    int max = arr.length-1;
    int mid = (min+max)/2;
    while(key != arr[mid]){
        if(key>arr[mid]){
            min = mid + 1;
        }else if{
            max = mid - 1;
        }
        if(min > max)
            return -1;
        mid = (min+max)/2;
    }