• 排序算法之-冒泡


    顺序排序算法原理

    从头开始遍历未排序数列,遍历时比较相邻的两个元素,前面的大于后面的,则双方交换位置,一直比较到末尾,这样最大的元素会出现在末尾,接着再依次从头开始遍历剩余未排序的元素,直至所有的元素都排序完成。(其实就是每次遍历时找出最大的元素,通过不断的移动位置,将其存入到未排序末尾)

    算法图解

    在这里插入图片描述

    算法实现

    /**
         * 顺序排序
         * @param arr
         */
        public void sort(int arr[]){
            for(int j = arr.length-1;j>1;j--){
                for(int i=0;i<j;i++){
                    if(arr[i]>arr[i+1]){
                        int temp = arr[i];
                        arr[i] = arr[i+1];
                        arr[i+1] = temp;
                    }
                }
            }
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    倒序排序算法原理

    顺序是从头开始遍历,倒序是从末尾开始遍历,将最大元素依次存入序列开头位置

    算法图解

    在这里插入图片描述

    算法实现

    /**
         * 倒序排序
         * @param arr
         */
        public void revert(int arr[]){
            for(int j=0;j<arr.length-1;j++){
                for(int i=arr.length-1;i>j;i--){
                    if(arr[i]>arr[i-1]){
                        int temp = arr[i];
                        arr[i] = arr[i-1];
                        arr[i-1] = temp;
                    }
                }
            }
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    测试

    public static void main(String[] args) {
            int arr[] = {9, 7, 1991, 27, -1, -10, 0, 2, 65, -100};
            BubbleSort bubbleSort = new BubbleSort();
            bubbleSort.sort(arr);
            for (int i = 0; i < arr.length; i++) {
                System.out.print(arr[i] + "\t");
            }
            System.out.println();
    
            int arr2[] = {9, 7, 1991, 27, -1, -10, 0, 2, 65, -100};
            bubbleSort.revert(arr2);
            for (int i = 0; i < arr2.length; i++) {
                System.out.print(arr2[i] + "\t");
            }
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    结果

    在这里插入图片描述

  • 相关阅读:
    paddle dataset
    spring cloud gateWay集成knife4j实现文档聚合
    9.项目细节调整
    Implement a customized pin code input control
    Kubernetes:k8s组件
    Redis -- 主从
    前端怎么debugger排查线上问题
    vue2 按钮权限控制组件 Authority
    一阶惯性滤波器的传递函数与时域实现
    zookeeper可视化工具ZooInspector用法
  • 原文地址:https://blog.csdn.net/nickyyu/article/details/134275320