package wzs.sort; import java.util.Arrays; //冒泡排序 //基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数, //自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。 //即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。 //54321 //开始冒泡... //45321 //43521 //43251 //43215 //第一轮结束... //34215 //32415 //32145 //第二轮结束... //23145 //21345 //第三轮结束... //12345 //第四轮结束... public class Test_wzs001 { public static void main(String[] args) { int[] intArray = { 10, 9, 5, 3, 6, 4, 7, 8, 2, 1 }; bubbleSort(intArray); } /** * 冒泡排序 * @param intArray 需要排序的数组 */ static void bubbleSort(int[] intArray) { int temp; // i表示第几次比较 for (int i = 0; i < intArray.length - 1; i++) { // j表示比较次数 for (int j = 0; j < intArray.length - 1 - i; j++) { if (intArray[j] > intArray[j + 1]) { temp = intArray[j]; intArray[j] = intArray[j + 1]; intArray[j + 1] = temp; } } System.out.println("第" + (i + 1) + "排序:" + Arrays.toString(intArray)); } System.out.println("\n排序后结果:" + Arrays.toString(intArray)); } }
输出结果:
第1排序:[9, 5, 3, 6, 4, 7, 8, 2, 1, 10] 第2排序:[5, 3, 6, 4, 7, 8, 2, 1, 9, 10] 第3排序:[3, 5, 4, 6, 7, 2, 1, 8, 9, 10] 第4排序:[3, 4, 5, 6, 2, 1, 7, 8, 9, 10] 第5排序:[3, 4, 5, 2, 1, 6, 7, 8, 9, 10] 第6排序:[3, 4, 2, 1, 5, 6, 7, 8, 9, 10] 第7排序:[3, 2, 1, 4, 5, 6, 7, 8, 9, 10] 第8排序:[2, 1, 3, 4, 5, 6, 7, 8, 9, 10] 第9排序:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 排序后结果:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]