只要有一轮没有发生交换,说明数据的顺序已经排好,没有必要继续进行循环下去了。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; }