欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java算法--冒泡排序操作

程序员文章站 2022-03-07 12:12:36
java算法(排序)–冒泡排序一、冒泡排序简明介绍(从小到大)冒泡排序算法思想冒泡排序就是将一组无序的 int 类型数组进行排序,此次以从小到大排序为例。核心:int[] array = {};核心一两个相邻元素 (array[0]=a1,array[1]=a2) 比较大小,如果 array[0] > array[1],两数组元素就进行交换。完成后下标加一,继续用下两个相邻元素 (array[1]=a1,array[2]=a3) 比较大小。核心二两个相邻元素 (array[0]...

冒泡排序(java实现),实现最优

一、冒泡排序简明介绍(从小到大)

  1. 冒泡排序算法思想

冒泡排序的平均时间是O(n2),冒泡排序是稳定的排序算法。

**冒泡排序就是将一组无序的 int 类型数组进行排序,此次以从小到大排序为例。**

核心
int[] array = {};
java算法--冒泡排序操作
核心一
两个相邻元素 (array[0]=a1,array[1]=a2) 比较大小,如果 array[0] > array[1],两数组元素就进行交换。完成后下标加一,继续用下两个相邻元素 (array[1]=a1,array[2]=a3) 比较大小。
核心二
两个相邻元素 (array[0]=a1,array[1]=a2) 比较大小,如果 array[0] <= array[1],两数组元素就不进行交换。下标加一后继续用下两个相邻元素 (array[1]=a2,array[2]=a3) 比较大小。
核心三
当第一趟比较完成后,最大的数就被放在了数组的最后 array[n-1] 中,所以下一趟排序就不用比较 array[n-1] ,直接将数组最大下标置为n-2,继续进行比较。

  1. 算法过程
    第一趟:数组所有元素比较,最大的放在array[n-1]中
    第二趟:数组下标为0—n-2的元素进行比较,最大的放在array[n-2]中
    第三趟
    。。。
    第n-2趟:数组下标为0—1两个元素比较,最大的放在array[1]中,整个计算结束。

  2. 动态图

java算法--冒泡排序操作

二、代码实现

冒泡排序 方法实现

public static void BubbleSort(int[] array){
        int temp=0;
        boolean flag=false; //判断是否按顺序排列
        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]){
                    flag=true;
                    temp=array[j];
                    array[j]=array[j+1];
                    array[j+1]=temp;
                }
            }
            if (!flag){
                break;
            }else {
                flag=false;
            }
        }
}

测试

public static void main(String[] args) {
       int[] array={20,18,-11,33,1,0,5,8,15,-12};
       System.out.println("排序前");
       System.out.println(Arrays.toString(arr));
       BubbleSort(array);
       System.out.println("排序后");
       System.out.println(Arrays.toString(array));
       }

测试结果
java算法--冒泡排序操作

本文地址:https://blog.csdn.net/qq_46343559/article/details/110870810