冒泡排序 Java

来源:互联网 发布:github java 项目 编辑:程序博客网 时间:2024/06/15 19:16

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;}}}


0 0