本文共 1503 字,大约阅读时间需要 5 分钟。
现存在一个无序数组{1,9,7,5,3},请利用冒泡排序将数组按照从小到大(从大到小)排序。
第一趟:一共五个数,比较了4回,流程如下:
1和9比,9大,不变换位置,所以还是 1,9,7,5,3 9和7比,9大,需要变换位置,9和7对调 1,7,9,5,3 9和5比,9大,需要变换位置,9和5对调 1,7,5,9,3 9和3比,9大,需要变换位置,9和3对调 1,7,5,3,9第二趟: 1,7,5,3,9 比较了3回,流程如下:
1和7比,7大,不需要变换位置, 所以还是 1,7,5,3,9 7和5比,7大,需要变换位置 ,所以变成 1,5,7,3,9 7和3比,7大,需要变换位置 ,所以变成 1,5,3,7,9第三趟:1,5,3,7,9 比较了2回,流程如下:
1和5比 ,5大,不需要变换位置, 所以还是 1,5,3,7,9 5和3比, 5大 ,需要变换位置 , 变成 1,3,5,7,9第四趟:1,3,5,7,9 比较了1回,流程如下:
1和3比 , 3 大 ,不需要变换位置, 所以还是1,3,5,7,9小结:
冒泡排序的代码实现如下:
package com.algorithm;/** * 本文作者:谷哥的小弟 * 博客地址:http://blog.csdn.net/lfdfhl */public class BubbleSort { public static void main(String[] args) { int[] intArray = { 11, 99, 77, 5, 0, -1}; printArray(intArray); System.out.println(); bubble(intArray); } public static void bubble(int[] intArray) { for (int i = 0; i < intArray.length - 1; i++) { for (int j = 0; j < intArray.length - 1 - i; j++) { if (intArray[j] > intArray[j + 1]) { swap(intArray, j, j + 1); } } } printArray(intArray); } //打印数组 public static void printArray(int[] intArray) { for (int i = 0; i < intArray.length; i++) { System.out.print(intArray[i] + " "); } } //交换数组中的元素 public static void swap(int[] intArray, int i, int j) { int temp = 0; temp = intArray[i]; intArray[i] = intArray[j]; intArray[j] = temp; }}