Java中的冒泡排序

冒泡排序的原理

冒泡排序算法通过重复比较,将数组中相邻的两个数据元素进行交换。在这个过程中,不断将小的值移向一端,大的值移向另一端,从而达到排序的目的。

冒泡排序算法

核心算法:

//Bubble Sort
for(int i = 1; i < length; ++i){
	for (int j = length - 1; j >= i; --j) {
		if(num[j - 1] > num[j]) {
			tmp = num[j - 1];
			num[j - 1] = num[j];
			num[j] = tmp;
			flag = true;
		}
	}
	if(!flag)
		break;
}

下面是完整的Bubble程序

//Bubble.java
public class test {
	public static void main(String[] args) {
		int[] num = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
		int length = 10;
		int tmp;
		boolean flag = false;
		
		System.out.print("Original array is:");
		for(int i = 0; i < length; ++i)
			System.out.print(num[i] + " ");
		System.out.println();

		//Bubble Sort
		for(int i = 1; i < length; ++i){
			for (int j = length - 1; j >= i; --j) {
				if(num[j - 1] > num[j]) {
					tmp = num[j - 1];
					num[j - 1] = num[j];
					num[j] = tmp;
					flag = true;
				}
			}
			if(!flag)
				break;
		}
		System.out.print("Sorted array is:");
		for(int i = 0; i < length; ++i)
			System.out.print(num[i] + " ");
		System.out.println();
	}
}

程序输出如下图所示:

Original array is:10 9 8 7 6 5 4 3 2 1
Sorted array is:1 2 3 4 5 6 7 8 9 10

尽管冒泡排序对小型数组适用,但是在大型数组中,就显得效率低下,最好的通用排序方法是快速排序。Bubble程序的时间复杂度为O(n2)。

Java中的数组引用赋值这里有对冒泡排序使用的改进,可以参考。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值