JAVA排序算法之冒泡排序

冒泡排序

原理:

比较两个相邻的元素,将值大德元素交换至右端

思路:

核心排序思想:相邻两个数进行比较 交换位置
依次比较相邻的两个数,将小数放在前,大数放在后面.
即在第一趟:首先比较第1个和第二个数,倘若第二个数小于第一个数,则交换这两个数,如果第一个数小于第二个数,则不交换,
继续比较第二个数和第三个数,如此继续,直到比较最后两个数,不断重复上述步骤,直到全部排序完成

举例说明

 *int[] array = new int[]{3,2,5,1};
 * 
 *3 2 5 1
 *第一趟 比较完毕 确定了一个最大值放在了最后面
 * 第一次 2 3 5 1
 * 第二次 2 3 5 1
 * 第三次 2 3 1 5
 * 
 * length-1-0
 * 
 * 第二趟 比较完毕 确定了一个最大值
 * 第一次 2 3 1 5
 * 第二次 2 1 3 5
 * 
 * length-1-1
 * 
 * 第三趟
 * 第一次 1 2 3 5
 * 
 * length-1-2

代码实现


//冒泡排序  大的数沉下去,小的数浮上来
public static void main(String[] args) {
    int[] array = {2,1,5,7,3,9,4};
    //把双重循环结构打出来
    //注意 内循环减一 防止数组越界
    //外循环-1代表5个数 比较四趟 比较数组长度减一趟
    //内循环-i 每一趟都少比一次
    //内循环相当于 一趟比多少次
    for(int i = 0; i < array.length -  1; i++) {
       for(int j = 0; j < array.length - 1 - i; j++) {
        // 相邻 两个数 比较 交换
            if(array[j] > array[j + 1]) {
                int temp = array[j + 1];
                array[j + 1] = array[j];
                array[j] = temp;
            }
      }
    }
       //   打印数组
    System.out.println(Arrays.toString(array));
}


你可能感兴趣的:(JavaSE)