原理:每次比较两个相邻的元素,将较大(较小)的元素交换至右边。
思路:每次冒泡排序操作都会将相邻的两个元素进行比较,看是否满足大小关系要求,如果满足,就根据需要(从小到大/从大到小)交换这两个相邻元素,一轮冒泡使得一个元素移动到它应最终所在的位置。进行(数组元素个数减一再减所进行的轮数)次对比,就完成一轮的冒泡排序;而进行(数组元素个数减一)轮,就完成了全部冒泡排序。
可以根据需要进行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"); } } }