标签:
冒泡排序算法的运作如下:
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
package sort; import java.util.Arrays; import java.util.Random; public class BubbleSort { public static void main(String[] args) { int arrLength = 100; int randomTop = 1000; int[] intArr = new int[arrLength]; Random r = new Random(); for (int i = 0; i < arrLength; i++) { int j = r.nextInt(randomTop); intArr[i] = j; } long start = System.currentTimeMillis(); System.out.println(Arrays.toString(intArr)); bubbleSort(intArr); long end = System.currentTimeMillis(); System.out.println("运行时间:" + (end - start) + "毫秒"); } private static void bubbleSort(int[] intArr) { boolean isSorted = false; for (int flgi = 0; flgi < intArr.length - 1; flgi++) { if (compare(intArr[flgi], intArr[flgi + 1])) { changePlace(intArr, flgi); isSorted = true; } } if (!isSorted) { return; } bubbleSort(intArr); } private static void changePlace(int[] intArr, int flgi) { int proNum = intArr[flgi]; intArr[flgi] = intArr[flgi + 1]; intArr[flgi + 1] = proNum; System.out.println(Arrays.toString(intArr)); } private static boolean compare(int i, int j) { if (i > j) { return true; } return false; } }
标签:
原文地址:http://my.oschina.net/GoogleFan/blog/515296