Java实现冒泡排序算法
package test; public class MaopaoPaixu { public static void main(String[] args) { //通过控制台输入集合数据 int[] arr = new int[3]; arr[0] = 3; arr[1] = 2; arr[2] = 1; //当i=0时,i小于2, //j=0,j<3-1-0=2;arr[0]=3>arr[1]=2,arr[0]=2,arr[1]=3,231 //j=1,j<3-1-0=2,arr[1]=3>arr[0]=1,arr[1]=1,arr[2]=3,213 //j=2, //i=1,i<2 //j=0,j<3-1-1=1,arr[0]=2>arr[1]=1,123 //j=1 //如果不是-1,也不是-1-i,会怎么样 //为什么这个排序这样写 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.println(arr[i]); } //321 //外层循环n-1 //内层循环n-1-i,也就是越往后面,循环的次数越少,随着外层的次数增多而减少 //外层之所以只需要比较n-1次,是因为只需要比较两者 //内层之所以不断减少,是因为,每一比较之后,最大的数一定会到最后一位,就是冒泡的形象描述 //231,213,不用再比较 //123,不用再比较 } }