冒泡排序实现原理:
对冒泡排序还能进行一点优化:当发现走完一趟流程,一次都没有发生交换操作时,说明此时数组已经是顺序,可以提前return退出方法。
JDK17完整代码:
package SortAlgorithm.BubbleSort;
import java.util.Arrays;
public class BubbleSort {
public static void main(String[] args) {
int[] arr = {50,60,10,80,30};
System.out.println("原数组: "+ Arrays.toString(arr));
bubbleSort(arr);
System.out.println("排序后: "+ Arrays.toString(arr));
}
/**
* 冒泡排序
* @param arr
*/
public static void bubbleSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
boolean isSwap = false;
for (int j = 0; j < arr.length - 1-i; j++) {
if (arr[j] >arr[j+1]){
isSwap = true;
int temp = arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
//一轮过后如果一次没有交换过,说明已经排好了
if (!isSwap){
return;
}
isSwap = false;
}
}
}
测试图: