Java10-8_氣泡排序法
阿新 • • 發佈:2020-08-26
氣泡排序法
-
氣泡排序法是最出名的排序法之一,總共有八大排序
-
相對簡單,兩層迴圈,外層冒泡輪數,裡層層次比較
-
看到巢狀迴圈,應該立馬就可以得出這個演算法的時間複雜度為O(n2)
1 package com.Xujie.Day10; 2 3 import java.util.Arrays; 4 5 public class Java10_10 { 6 public static void main(String[] args) { 7 //1. 比較陣列中,兩個相鄰元素,如果第一個數比第二個數大,我們就交換他們的位置 8 //2. 每一次比較,都會產生出一個最大的或者最小的數字9 //3. 下一輪可以減少一次排序 10 //4. 依次迴圈,直到結束 11 int[] a = {1, 5, 4, 9, 8, 77, 24, 67,32}; 12 int[] sort = sort(a);//呼叫完我們自己寫的程式後,返回一個排序後的值 13 System.out.println(Arrays.toString(sort)); 14 15 } 16 17 public static int[] sort(int[] array) { 18 //定義臨時變數 19 inttemp = 0; 20 //外層迴圈,判斷我們這個程式要走多少次 21 for (int i = 0; i < array.length - 1; i++) { 22 boolean flag=false;//通過flag標識減少無意義的比較 23 //內層迴圈,判斷兩個數,如果第一個數比第二個數大,則交換兩個數 24 for (int j = 0; j < array.length - 1 - i; j++) { 25 if (array[j+1]<array[j]){26 temp=array[j]; 27 array[j]=array[j+1]; 28 array[j+1]=temp; 29 flag=true; 30 } 31 } 32 } 33 return array; 34 } 35 }