冒泡排序

Posted monkey1024

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡排序相关的知识,希望对你有一定的参考价值。

基本冒泡排序

 1     public static void bubbleSort(int[] list) 
 2         int temp = 0; // 用来交换的临时数
 3         // 要遍历的次数
 4         for (int i = 0; i < list.length; i++) 
 5             // 从后向前依次的比较相邻两个数的大小,遍历一次后,把数组中第i小的数放在第i个位置上
 6             for (int j = list.length - 1; j > i; j--) 
 7                 // 比较相邻的元素,如果前面的数大于后面的数,则交换
 8                 if (list[j - 1] > list[j]) 
 9                     temp = list[j - 1];
10                     list[j - 1] = list[j];
11                     list[j] = temp;
12                 
13             
14             System.out.print(list[i]+",");
15         
16     

 最优解冒泡排序

排序方法(优化:当某趟没有发生交换,说明数组已经有序,就中断程序)

    public static void bubbleSort(int[] arr) 

        //判断要排序的数据是否为空
        if (arr == null || arr.length < 2) 
            //为空直接退出
            return;
        
        //开始排序
        for (int i = arr.length - 1; i > 0; i--) 
            boolean swapped = false;
            for (int j = 0; j < i; j++) 
                if (arr[j] > arr[j + 1]) 
                        swap(arr, j, j + 1);
                    swapped = true;
                
            
            if(!swapped) 
                break;
            
        
    

交换位置

    public static void swap(int[] arr, int i, int j) 
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    

动图展示

技术图片

以上是关于冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章

nodejs实现冒泡排序和快速排序

java编程的冒泡等排序示例

深度解析(十五)冒泡排序

冒泡排序

拓扑排序(图)、冒泡排序、插入排序

冒泡排序