演算法學習第六日之氣泡排序
阿新 • • 發佈:2021-01-11
目錄
氣泡排序
定義
氣泡排序的優化
圖解:
實現程式碼:
package com.atguigu.sort; import javax.xml.crypto.Data; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Date; public class BubbleSort { public static void main(String[] args) { int arr[] = new int[80]; SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateBegin = simpleDateFormat.format(new Date()); System.out.println(dateBegin); for (int i = 0; i < 80; i++) { arr[i] = (int)(Math.random() * 8000); } bubbleSort(arr); String dateEnd = simpleDateFormat.format(new Date()); System.out.println(dateEnd); } public static void bubbleSort(int arr[]) { int temp = 0; boolean flag = false; for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - i - 1; j++) { if (arr[j] > arr[j + 1]) { flag = true; temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } System.out.printf("第%d趟排序後的陣列:",(i+1)); System.out.println(Arrays.toString(arr)); if (!flag) { break; } else { flag = false; } } } }
特別注意:
flag = false
這裡需要重置flag
為false
以進行下次判斷