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

冒泡排序-BubbleSort

1、基本思路

        从数组的左边开始,比较两个元素的大小,当左边大于右边时,更换左右元素位置,否则不改变;接着向右移动一步,比较第二个元素和第三个元素的大小,重复上述操作,直到最后一个元素,此时,最大的元素就已经移动到了最右边;然后进行下一轮比较,但是下一轮比较时,不需要比较最后一个元素了。

2、代码实现

public class BubbleSort {public static void main(String[] args) {int[] arr = new int[]{33, 24, 4, 28, 95, 63, 86, 77};bubbleSort(arr);for (int i = 0; i < arr.length; i++){System.out.print(arr[i] + " ");}}/*** 冒泡排序** @param arr 需要排序的整数数组*/public static void bubbleSort(int[] arr) {int length = arr.length;for (int i = length -1; i > 0; i-- ){for (int j = 0; j < i; j++){if (arr[j] > arr[j+1]){swap(j,j+1,arr);}}}}private static void swap(int i, int i1, int[] arr) {int temp = arr[i];arr[i] = arr[i1];arr[i1] = temp;}
}

 双层循环,时间复杂度为O(N^2)

3、动态理解 

查看这个网站,动态演示,帮助理解

相关文章:

  • spark+phoenix读取hbase
  • gin中间件篇
  • SAP ABAP SUBMIT常用用法
  • Spring Boot 4.0:构建云原生Java应用的前沿工具
  • 爬虫模板(附完整代码+案例)
  • 常用的Qt开源库分享
  • 一、基础数据结构——2.队列——3.双端队列和单调队列1
  • 【Ant Design of Vue】Modal.confirm无法关闭的bug
  • 如何在Linux部署JumpServer堡垒机并实现远程访问本地服务
  • mybatis的缓存机制
  • vue中合并下载打包视频图片
  • Gitee Reward让开源作者不再为爱发电
  • 数组练习 Leetcode 566.重塑矩阵
  • Pytest插件pytest-django让Django测试更高效
  • Spring data都包含哪些内容
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • Apache Spark Streaming 使用实例
  • HTTP请求重发
  • Javascripit类型转换比较那点事儿,双等号(==)
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • Java到底能干嘛?
  • js操作时间(持续更新)
  • Redux系列x:源码分析
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • ubuntu 下nginx安装 并支持https协议
  • v-if和v-for连用出现的问题
  • 排序(1):冒泡排序
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 白色的风信子
  • hi-nginx-1.3.4编译安装
  • UI设计初学者应该如何入门?
  • 国内开源镜像站点
  • #13 yum、编译安装与sed命令的使用
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (转)3D模板阴影原理
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .NET Micro Framework 4.2 beta 源码探析
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .NET/C# 使用反射注册事件
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .net访问oracle数据库性能问题
  • .NET简谈设计模式之(单件模式)
  • .NET开源项目介绍及资源推荐:数据持久层
  • .so文件(linux系统)