排序算法之-冒泡

顺序排序算法原理

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

算法图解

算法实现

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

结果

相关推荐
2401_891482172 小时前
多平台UI框架C++开发
开发语言·c++·算法
88号技师2 小时前
2026年3月中科院一区SCI-贝塞尔曲线优化算法Bezier curve-based optimization-附Matlab免费代码
开发语言·算法·matlab·优化算法
t198751282 小时前
三维点云最小二乘拟合MATLAB程序
开发语言·算法·matlab
x_xbx3 小时前
LeetCode:148. 排序链表
算法·leetcode·链表
Darkwanderor3 小时前
三分算法的简单应用
c++·算法·三分法·三分算法
2401_831920743 小时前
分布式系统安全通信
开发语言·c++·算法
WolfGang0073214 小时前
代码随想录算法训练营 Day17 | 二叉树 part07
算法
温九味闻醉4 小时前
关于腾讯广告算法大赛2025项目分析1 - dataset.py
人工智能·算法·机器学习
炽烈小老头4 小时前
【 每天学习一点算法 2026/03/23】数组中的第K个最大元素
学习·算法·排序算法
老鱼说AI4 小时前
大规模并发处理器程序设计(PMPP)讲解(CUDA架构):第四期:计算架构与调度
c语言·深度学习·算法·架构·cuda