1. 程式人生 > 其它 >Java中的常用演算法

Java中的常用演算法

二分查詢演算法

演算法思路

二分查詢演算法也稱為折半查詢演算法,要求待查詢的序列有序,每次查詢都去中間位置的值與待查關鍵字進行比較,如果中間位置的值比待查關鍵字大,則在序列的左半部分繼續查詢,反之亦然,直到查詢到關鍵字為止,否為在序列中沒有待查關鍵字。

Java程式碼實現

public static int binarySearch(int[] array, int aim) {
        int start = 0;
        int end = array.length - 1;
        int mid;
        while (start<end){
            mid=
(end-start)/2+start;//中間位置 if (array[mid]==aim){ return mid; }else if(array[mid]>aim){ end=mid-1; //向左查詢 }else{ start=mid+1; //向右查詢 } } return -1; }

氣泡排序演算法

氣泡排序(Bubble Sort)演算法,在重複訪問要排序的元素列時,會依次比較相鄰兩個元素,如果左邊大於右邊,兩者就交換位置,如此重複,直到沒有相鄰的元素需要交換位置,排序就完成。

演算法最好情況最壞情況時間複雜度空間複雜度穩定性
氣泡排序O(n)O(n^2)O(n^2)O(1)穩定

Java程式碼實現

public static int[] bubbleSort(int[] array){
        //外層迴圈控制排序趟數
        for (int i = 0; i < array.length; i++) {
            //內層迴圈控制每一趟排序次數
            for (int j = 0; j < array.length-i-1; j++) {
                if (array[j]>array[
j+1]){ int temp=array[j]; array[j]=array[j+1]; array[j+1]=temp; } } } return array; }