美文网首页Java 杂谈
二、Java版冒泡排序

二、Java版冒泡排序

作者: 编程界的小学生 | 来源:发表于2018-09-25 16:15 被阅读6次

    一、核心思想

    比较两个元素,如果前一个比后一个大,则进行交换。经过对每个元素的比较。最后将最大的元素设置成最后一个元素。重复(n-1次)该操作,最后形成从小到大的排序。

    二、源码

    package com.ctw;
    
    /**
     * @author TongWei.Chen 2018-09-25 16:01:32
     * @Description: 冒泡排序
     * @Project sjjg-sf
     */
    public class BubbleSort {
    
        /**
         * 冒泡排序
         */
        public static void bubbleSort(long[] arr) {
            // 0、定义交换变量,注意:细节操作,我没放到for里面,是为了外面定义只生成一个变量到栈里。
            long temp = 0L;
            // 1、需要进行n-1趟排序
            for (int i = 0; i < arr.length - 1; i ++) {
                // 2、j < arr.length - i;是因为上面已经控制了外层循环的趟数,每一次外层循环都会找到一个最小数字并放到了最左侧。
                // 所以这里-i操作是为了少循环几遍,节省一点性能开销。
                // - 1;操作是因为下面要进行变量替换,方便arr[j + 1];也可以不-1,直接int j = 1;开始,然后下面arr[j - 1] > arr[j],一样的道理
                for (int j = 0; j < arr.length - i - 1; j ++) {
                    // 若左侧大于右侧,则进行变量替换,因为我们是从小大大排序。
                    if (arr[j] > arr[j + 1]) {
                        temp = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = temp;
                    }
                }
            }
        }
    
        public static void main(String[] args) {
            MyArray myArray = new MyArray();
            myArray.add(30L);
            myArray.add(12L);
            myArray.add(33L);
            myArray.add(20L);
            myArray.add(10L);
            bubbleSort(myArray.getArr());
            myArray.display();
        }
    
    }
    
    

    三、广告

    相关文章

      网友评论

        本文标题:二、Java版冒泡排序

        本文链接:https://www.haomeiwen.com/subject/uksloftx.html