码迷,mamicode.com
首页 > 编程语言 > 详细

冒泡排序

时间:2015-01-30 22:42:09      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:冒泡排序   算法   

交换排序主要包括冒泡排序和快速排序两种,其中快速排序是目前最常用、最快速的排序方法之一。

冒泡排序又称气泡排序,它是一种非常简单的排序方法。其基本过程是通过比较和交换将较小的元素逐渐浮向顶部,如同水底的气泡一样向上冒,这就是它名称的由来。气泡排序是稳定的。


气泡排序的思想是:首先从头向后扫描数据,在扫描过程中逐次比较相邻数据的大小。若前面的元素大于后面的元素,则将它们互换,在这个扫描完成之后,数据之中的最大者就换到了最后。然后从后向前扫描数据,在扫描过程中逐次比较相邻数据的大小,若前面的元素大于后面的元素,则将它们互换。在这个扫描完成之后,就将数据中的最小者移动到了最前面。这两次扫描完成之后,至少最大者和最小者已经归位,待排序的数据个数也可以减少两个。继续进行扫描,最终可以使所有的数据归位。


<pre name="code" class="java">// 冒泡排序 x待排序数组, n数组长度
	private static void bubbleSort(int[] x, int n) {
		int head, tail, i, j, t;
		head = 0;
		tail = n - 1;
		while (head < tail) {
			j = tail;
			for (i = head; i < j; i++) {  //从前向后扫描
				if (x[i] > x[i + 1]) {
					t = x[i];
					x[i] = x[i + 1];
					x[i + 1] = t;
					tail = i; // 当前交换到的最大位置
				}
			}
			j = head;
			for (i = tail; i > j; i--) {  //从后向前扫描
				if (x[i - 1] > x[i]) {
					t = x[i];
					x[i] = x[i - 1];
					x[i - 1] = t;
					head = i;    //交换到最小值位置
				}
			}
		}
		// 打印排序后的数组
		for (int m = 0; m < x.length; m++) {
			System.out.println(x[m]);
		}
		return;
	}






冒泡排序

标签:冒泡排序   算法   

原文地址:http://blog.csdn.net/zbao6062/article/details/43314929

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!