排序算法之-冒泡

顺序排序算法原理

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

算法图解

算法实现

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

结果

相关推荐
取名真是1 小时前
Python 算法知识点从基础到进阶
开发语言·python·算法
罗西的思考1 小时前
【轻量化复刻大模型 / KIMI K3】KDA 模块交互式演示
人工智能·算法·机器学习
nm_zfyjt3 小时前
信息流广告投放优化实践:线索成本评估模型与转化链路重构(家装建材案例)
算法·重构·内蒙古朋友圈广告服务商·内蒙古朋友圈获客
w_zero_one4 小时前
算法--构造
java·数据结构·算法
其实防守也摸鱼5 小时前
信创安全竞赛知识总结与题库
大数据·网络·人工智能·算法·安全·php
小超人诞生日记6 小时前
C++ 智能指针的使用及其原理详解
c++·算法
AiNightVision9 小时前
无人机夜视模块如何选择?——从参数指标到系统集成的完整选型指南
人工智能·算法·计算机视觉·车载系统·无人机·视频·智能硬件
牧羊人.33310 小时前
卷积神经网络之VGG
人工智能·深度学习·神经网络·算法·cnn
小郎君65811 小时前
Vue 多标签页的加载态设计:为什么我没有用 Suspense 实现 PageLoading
vue.js·算法