冒泡排序
2015-04-15 13:36
281 查看
普通冒泡排序:
改进后的冒泡排序(改进后的冒泡排序内层循环判断出有序后,便不再进行循环,在一定程度提高了效率):
/** * 对无序数组进行排列,两两比较,使得大数在后。 */ public class BubbleSortTest { public static void bubbleSort(int[] array) { //比较趟数,共比较(array.length-1)趟 for (int i = 1; i < array.length; i++) { //每趟两两比较次数,每趟比较(array.length-i)次 for (int j = 0; j < array.length - i; j++) { //前面的数大于后面的数,则交换位置 if (array[j] > array[j + 1]) { int temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } } System.out.println("排序后的结果为:"); for (int i = 0; i < array.length; i++) { System.out.print(array[i] + " "); } } public static void main(String[] args) { int[] array = {2, 5, 1, 6, 8, 7, 4, 6, 9, 3}; bubbleSort(array); } }
改进后的冒泡排序(改进后的冒泡排序内层循环判断出有序后,便不再进行循环,在一定程度提高了效率):
/** * 改进后的冒泡排序算法的实现: */ public class ImprovedBubbleSort { public static void improvedBubbleSort(int[] list) { boolean needNextPass = true; for (int k = 1; k < list.length && needNextPass; k++) { needNextPass = false; for (int i = 0; i < list.length - k; i++) { if (list[i] > list[i + 1]) { int temp = list[i]; list[i] = list[i + 1]; list[i + 1] = temp; needNextPass = true; } } } } //测试 public static void main(String[] args) { int[] array = new int[10]; for (int k = 0; k < array.length; k++) { array[k] = (int) (Math.random() * 100); } System.out.println("Before Sorting:"); for (int k = 0; k < array.length; k++) { System.out.print(array[k] + " "); } System.out.println("\n\nAfter Sorting:"); improvedBubbleSort(array); for (int k = 0; k < array.length; k++) { System.out.print(array[k] + " "); } } }
相关文章推荐
- 简单排序之冒泡排序
- 第16周项目1 -(1)冒泡排序
- 冒泡排序的动画显示
- 第十六周项目1-验证算法(3)冒泡排序
- 冒泡排序
- 冒泡排序
- (排序算法的应用7.3.8)UVA 299 Train Swapping(使用冒泡排序来计算逆序对数)
- 选择排序和冒泡排序
- 实现冒泡排序和选择排序
- 算法笔记_008:选择排序和冒泡排序【蛮力法】
- 给老婆讲 冒泡排序,感觉挺形象的,所以记下来
- 经典算法之冒泡排序
- 冒泡排序
- 算法 -- Java实现冒泡排序(图解 + 代码实现)
- 冒泡排序(Bubblesort)之Java实现
- 用JavaScript实现十大经典排序算法--冒泡排序
- 冒泡排序 Bubble Sort
- 对于数组的详解和对于冒泡排序的小练习
- 冒泡排序
- Java 中数组的冒泡排序 和 直接选择排序