GO語言安裝、變數
阿新 • • 發佈:2020-11-25
氣泡排序
- 氣泡排序無疑是最為出名的排序演算法之一,總共有八大排序!
- 冒泡的程式碼還是相當簡單的,兩層迴圈,外層冒泡層數,裡層依次比較,江湖中人人皆知。
- 我們看到巢狀迴圈,應該立馬可以得出這個演算法的時間複雜度為O(n^2)
package array; import java.util.Arrays; public class ArraysDemo07 { public static void main(String[] args) { /*氣泡排序 1.比較陣列中,兩個相鄰的元素,如果第一個數比第二個大,就交換他們的位置 2.每一次比較,都會產生出一個最大,或者最小的數字 3.下一輪你則可以少一次排序 4.依次迴圈,直到結束 */ int[] a = {31,51,46,32,5,1,6,41}; int[] sort = sort(a); System.out.println(Arrays.toString(sort)); } public static int[] sort(int[] array){ int temp = 0; //臨時變數 for (int i = 0; i < array.length-1; i++) { //外層迴圈,判斷我們這個要走多少次 boolean flag = false; //通過flag標識位減少沒有意義的比較 for (int j = 0; j < array.length-1-i; j++) { //內層迴圈,比價判斷兩個數,如果第一個數比第二個大,則交換位置 if (array[j+1]<array[j]){ temp = array[j]; //交換 array[j] = array[j + 1]; //兩個數 array[j + 1] = temp; //的位置 flag = true; } } if (flag = false){ break; } } return array; } }