当前位置: 首页 > article >正文

基础数据结构——用递归完成冒泡排序

冒泡排序

冒泡排序就是通过第一个元素依次与后面的元素进行比较,如果第一个元素比第二个元素大,那我们进行两个元素的交换,再调用这个交换函数,完成递归冒泡排序

如上完成了一轮冒泡排序,我们来根据思路完成代码。

private static void bubble1(int[]a,int j){
        if(j==0){
            return;
        }
        for(int i=0;i<j;i++){
            if(a[i]>a[i+1]){
                int temp = a[i];
                a[i] = a[i+1];
                a[i+1] = temp;
            }
        }
        bubble1(a,j-1);
    }

在上述代码中,我们传入两个参数,一个数组一个末尾指针。

我们进入迭代比较,每完成一次交换循环,开始继续调用,当末尾指针指向0索引的时候终止调用。

我们来思考一个问题,如果在完全遍历结束之前,数组就已经按照顺序排序的话,我们是不是可以提前返回数组呢,而不是继续循环到结束

我们只需要设置一个新的值x初值为0,如果发生了交换操作,就将该x赋值为当前的i(发生交换的索引)

我们来看代码:

private static void bubble(int[]a,int j){
        if(j==0){
            return;
        }
        int x=0;
        for(int i=0;i<j;i++){
            if(a[i]>a[i+1]){
                int temp = a[i];
                a[i] = a[i+1];
                a[i+1] = temp;
                x=i;
            }
        }
        bubble(a,x);
    }

    public static void sort(int[] a){
        bubble(a,a.length-1);
    }

并且实现了一个sort方法,便于用户调用


http://www.kler.cn/news/353878.html

相关文章:

  • 【大数据】HDFS DataNode节点下线
  • IOS每次查询数据时,当前滚动的位置会跑到底部?
  • wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理的解决方法
  • Python脚本之获取Splunk数据发送到第三方UDP端口
  • java01作业说明:
  • 机器学习:情感分析的原理、应用场景及优缺点介绍
  • 对TCP/IP、HTTP协议原理的分析和总结
  • C++学习笔记----9、发现继承的技巧(一)---- 使用继承构建类(4)
  • 雷达手势识别技术
  • C++ IO多路复用 poll模型
  • 前端学习-CSS的三大特性(十七)
  • python 爬虫 入门 一、基础工具
  • 分布式数据库环境(HBase分布式数据库)的搭建与配置
  • [算法日常] 逆序对
  • 音乐播放器项目专栏介绍​
  • Linux的kafka安装部署
  • 自动化测试与敏捷开发的重要性
  • docker (desktopcompose) download
  • KVM 建黑群晖
  • HarmonyOS NEXT 应用开发实战(六、组件导航Navigation使用详解)