排序算法之-冒泡

顺序排序算法原理

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

算法图解

算法实现

java 复制代码
/**
     * 顺序排序
     * @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;
                }
            }
        }
    }

倒序排序算法原理

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

算法图解

算法实现

java 复制代码
/**
     * 倒序排序
     * @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;
                }
            }
        }
    }

测试

java 复制代码
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");
        }
    }

结果

相关推荐
何以解忧,唯有..23 分钟前
Go语言循环语句详解:for、range与循环控制
开发语言·算法·golang
想吃火锅10051 小时前
【leetcode】88.合并两个有序数组js
算法
生成论实验室2 小时前
机器人:一个自主运动的系统
人工智能·算法·语言模型·机器人·自动驾驶·agi·安全架构
Qres8212 小时前
算法复键——树状数组
数据结构·算法
H178535090962 小时前
SolidWorks第四部分_直接实体建模特征9_替换面原理
线性代数·算法·机器学习·3d建模·solidworks
不会就选b2 小时前
算法日常・每日刷题--<二分查找>3
算法
绿算技术3 小时前
Mooncake 与绿算ForinnBase GroundPool如何联手打破推理僵局?
科技·算法·架构
-森屿安年-3 小时前
63. 不同路径 II
c++·算法·动态规划
老余捞鱼3 小时前
线性回归实战:5步验证你的量化因子是否真有效
算法·金融·回归·线性回归·ai量化
想吃火锅10053 小时前
【leetcode】121.买卖股票的最佳时机js/c++
算法·leetcode·职场和发展