冒泡排序(Bubblesort)之Java实现

原创 2013年12月04日 17:54:37

冒泡排序算法介绍

冒泡排序比插入排序更简单,把最大的元素逐步推到最高位(当前须处理子数组的最高位)。依我的理解,冒泡排序是一个一层层筑顶的过程。顶筑好了,排序也就好了。冒泡排序的最坏运行时间是O(n2),效率和插入排序一样。

冒泡排序算法Java实现

如《插入排序(Insertsort)之Java实现》一样,先实现一个数组工具类。代码如下:

public class ArrayUtils {
	
	    public static void printArray(int[] array) {
		    System.out.print("{");
		    for (int i = 0; i < array.length; i++) {
			    System.out.print(array[i]);
			    if (i < array.length - 1) {
				    System.out.print(", ");
			    }
		    }
		    System.out.println("}");
	    }

	    public static void exchangeElements(int[] array, int index1, int index2) {
		    int temp = array[index1];
		    array[index1] = array[index2];
		    array[index2] = temp;
	    }
    }

逐步选取n-1到1(Java里面数组以0开始标记),分别作为第n,n-1,...,2层顶,第2层顶筑好了之后,只剩下一个比它小的元素,排序结束。每个顶的筑成都从位置0开始,依次和下一位置的元素比较,如果比下一位大,就交换它俩的位置。冒泡排序的Java实现以及测试代码如下:

public class BubbleSort {

		public static void main(String[] args) {
			int[] array = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, -1, -2, -3 };

			System.out.println("Before sort:");
			ArrayUtils.printArray(array);

			bubbleSort(array);

			System.out.println("After sort:");
			ArrayUtils.printArray(array);
		}

		public static void bubbleSort(int[] array) {
			if (array.length <= 1) {
				return;
			}

			int size = array.length;
			for (int i = size - 1; i > 0; i--) {
				for (int j = 0; j < i; j++) {
					if (array[j] > array[j + 1]) {
						ArrayUtils.exchangeElements(array, j, j + 1);
					}
				}
			}
		}
	}


bubbleSort

冒泡排序算法的运作如下:(从后往前) 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数...

bubbleSort

冒泡排序: 1.idea: 比如从小到大排序,一个数组的两个相邻的元素不断的比较,将较大的一个数放在后面,一轮比较后,最大的数将放在最后,一个位置; 第二轮比较结束后,第二大的数放在了倒数第二个位置。...

Java排序再巩固--BubbleSort

提到冒泡排序,不知道大家还记得下面链接中的排序视频:冒泡排序,这个简单有趣的小视频有没有勾起内心深处的一点点回忆??下面小编就带着大家一起再来回顾和巩固这个经典的排序!       提起冒泡排序,也许...
  • YSC1123
  • YSC1123
  • 2016年05月23日 21:00
  • 341

Java-BubbleSort

前言     我们都知道BubbleSort这种排序算法不管从大到小排序,还是从小到大排序,都是相邻的两个进行比较,然后不符合条件时交换顺序。下面来看看引用类型是怎么进行BubbleSort的。 内容...

排序算法(java)

持续更新中冒泡排序程序如下:public class BubbleSort { public static void main(String args[]) { int...
  • hnyzwtf
  • hnyzwtf
  • 2016年08月29日 15:32
  • 282

冒泡排序

冒泡排序标签(空格分隔): java,冒泡排序,基础话不多说,上代码/** * 复习一下冒泡排序 */ public class BubbleSort { public static vo...

冒泡排序(Bubble_Sort)

冒泡排序算法是一个耳熟能详的算法,在我们学习计算机的专业课的时候,在课本中经常会见到该程序,作为一个非常简单的例子程序。如果你不能默写该算法,那么你就没学过计算机的相关课程。好了,不说闲话了。 冒泡...

冒泡排序:bubleSort

冒泡排序:就像水里的气泡,密度小往上浮。                 对于数组而言,当然是值小的向数组下标小的方向传播,值大的向数组下标大的方向传播,传播是通过数组元素之间的交换实现的。   ...
  • wzb56
  • wzb56
  • 2012年09月24日 19:48
  • 702

【内部排序】四:冒泡排序(Bubble Sorting)详解与代码

交换排序的基本思想:两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。 两种交换排序:       (1)冒泡排序       (2)快速排序 一、冒泡排序...

【排序】冒泡排序Bubble Sorting的特点

总结一下冒泡排序 示例源码: int[] array = { 300, 1000, 1, 1200, 2000, 350, 500, 800 }; int temp = 0; ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:冒泡排序(Bubblesort)之Java实现
举报原因:
原因补充:

(最多只允许输入30个字)