冒泡排序 Java

1、虽然说是冒泡排序,其实是值大的元素下逐渐下沉,而不是值小的元素逐渐上浮。

2、外层循环变量i控制算法执行的次数,内层循环负责比较arr.length-i个元素,找出其中最大的元素,并使其下沉。

3、可设置一个标志flag加速算法:假设某一趟算法执行的过程中,没有发生元素交换,则算法执行结束。

4、注意内层循环的边界条件。

算法如下:

	public static void bubble_sort(int [] arr){
		int tmp = 0;
		boolean flag = true;
		for(int i = 0; i < arr.length; i++){
			flag = true;
			for(int j = 0; j < arr.length - i - 1; j++){
				if(arr[j] > arr[j+1]){
					tmp = arr[j];
					arr[j] = arr[j+1];
					arr[j+1] = tmp;
					flag = false;
				}
			}
			if(flag){
				return;
			}
		}
	}


你可能感兴趣的:(java,冒泡排序)