冒泡排序
public static void main(String[] args) {
int[] arr = {1,20,13,45,35,5,53,4};
bubbleSorted(arr);
}
/**冒泡排序*/
public static void bubbleSorted(int[] arr){//封装了一个方法
for (int i = 0; i < arr.length; i++) {//轮数
for (int j = 0; j < arr.length-1-i; j++) {
if(arr[j] > arr[j + 1]){//每次都和下一个元素进行比较
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
System.out.println("排序后数组:");
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
优化
public static void main(String[] args) {
int[] arr = {1,20,13,45,35,5,53,4};
bubbleSorted(arr);
}
/**冒泡排序*/
public static void bubbleSorted(int[] arr){//封装了一个方法
boolean isSorted;//默认false
for (int i = 0; i < arr.length; i++) {//轮数
isSorted = true;//假设剩下的元素已经排好序
for (int j = 0; j < arr.length-1-i; j++) {
if(arr[j] > arr[j + 1]){//每次都和下一个元素进行比较
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
isSorted = false;//一旦需要交换数组元素,说明剩下的元素没有排好序
}
}
System.out.println("排序的次数:" + i);
if(isSorted){
break;
}
}
System.out.println("排序后数组:");
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}