码迷,mamicode.com
首页 > 编程语言 > 详细

冒泡排序

时间:2019-09-12 23:52:41      阅读:41      评论:0      收藏:0      [点我收藏+]

标签:null   lis   turn   冒泡排序   排序   开始   ++   bubble   info   

基本冒泡排序

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

动图展示

技术图片

冒泡排序

标签:null   lis   turn   冒泡排序   排序   开始   ++   bubble   info   

原文地址:https://www.cnblogs.com/monkey1024/p/11489135.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!