×
文章路径: Java > 算法 > 排序

冒泡排序BubbleSort

发表于3年前(Dec 24, 2014 10:08:51 AM)  阅读 3086  评论 0

分类: Java 算法 排序

标签: sort 排序 bubblesort 冒泡排序

冒泡排序也是常用的排序方法之一,他的优点在于可读性好,容易编程实现。他的原理是,对于长度为n的数组,做n-1趟比较,每一趟比较,依次比较前后两数,小的数往前放,大的数往后放,相当于气泡往上升,所以叫冒泡排序。每一趟依次找出数组中最大的数,因此,每趟可以依次少比较一个数,只需比较到n-i+1个数即可。

 

package sort;

/**
 * 冒泡排序
 * @author lihui
 *
 */
public class BubbleSort {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
//		int[] a = {2,5,3,4,1,0};
		int[] a = {5,3,1,1,3,0,2};
		sorted(a);
		for(int i=0;i<a.length;i++) {
			System.out.println(a[i]);
		}

	}

	/**
	 * 冒泡排序,进行n-1趟比较,第一趟,比较第一个跟第二个元素的大小,如果第一个比第二个大,
	 * 则交换两数,然后再比较第二个跟第三个数的大小,一直比较到最后一个元素,第一趟完成,此时最大的数位于最后。
	 * 第i趟,从第一个元素比较起,一直比较到n-i+1个元素。
	 * @param a 要排序的数组
	 */
	public static void sorted(int[] a) {
		//临时变量,用于交换数值
		int temp = 0;
		//循环跑n-1趟
		for(int i=0;i<a.length-1;i++) {
			//从第一个比较到n-i+1个
			for(int j=0;j<a.length-i-1;j++) {
				//如果前面的数比后面的大,交换两数
				if(a[j]>a[j+1]) {
					temp = a[j+1];
					a[j+1] = a[j];
					a[j] = temp;
				}
			}

		}
	}

}

冒泡排序的时间复杂度为O(n2)。

 

发表评论