只要有一輪沒有發生交換,說明數據的順序已經排好,沒有必要繼續進行循環下去了。spa
public static void main(String[] args) { int[] arr = {1,3,5,7,9,2,4,6,8,0}; sort(arr); } public static void sort(int[] arr){ boolean flag; for (int i = 0; i < arr.length-1; i++) { flag = false;//是否交換位置 for (int j = 0; j <arr.length-1-i; j++){ if (arr[j] > arr[j+1]) change(arr,j,j+1); flag=true; } if (!flag) break; } } public static void change(int[] arr,int x,int y){ int temp = arr[x]; arr[x] = arr[y]; arr[y] = temp; }