原理:每次比较两个相邻的元素,将较大(较小)的元素交换至右边。
思路:每次冒泡排序操作都会将相邻的两个元素进行比较,看是否满足大小关系要求,如果满足,就根据需要(从小到大/从大到小)交换这两个相邻元素,一轮冒泡使得一个元素移动到它应最终所在的位置。进行(数组元素个数减一再减所进行的轮数)次对比,就完成一轮的冒泡排序;而进行(数组元素个数减一)轮,就完成了全部冒泡排序。
可以根据需要进行if部分的修改,以实现从小到大或者从大到小的排序
public class JavaTest {public static void main(String[] args) {int[] arr = new int[]{23,1,67,-4,0,-2,90,213,-77,56,43,7,-89};//排序总共arr.length-1轮(数组元素个数减一)for (int i = 0;i < arr.length-1;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;}}}//输出展示排序结果for (int i = 0;i <arr.length;i++){System.out.print(arr[i] + "\t");}}
}