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

经典算法题型之排序算法(二)

冒泡排序的第一种写法

代码如下:

public static void bubbleSort(int[] arr) { for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - 1 - i; j++) { if (arr[j] > arr[j + 1]) { // 如果左边的数大于右边的数,则交换,保证右边的数字最大 arr[j + 1] = arr[j + 1] + arr[j]; arr[j] = arr[j + 1] - arr[j]; arr[j + 1] = arr[j + 1] - arr[j]; } } } }

最外层的 for 循环每经过一轮,剩余数字中的最大值就会被移动到当前轮次的最后一位,中途也会有一些相邻的数字经过交换变得有序。总共比较次数是(n-1)+(n-2)+(n-3)+…+1。

这种写法相当于相邻的数字两两比较,并且规定:“谁大谁站右边”。经过 n-1 轮,数字就从小到大排序完成了。整个过程看起来就像一个个气泡不断上浮,这也是“冒泡排序法”名字的由来。

其中,我们在交换两个数字时使用了一个小魔术:没有引入第三个中间变量就完成了两个数字的交换。这个交换问题曾经出现在大厂面试题中,感兴趣的读者可以细品一下。除了这种先加后减的写法,还有一种先减后加的写法:

arr[j + 1] = arr[j] - arr[j + 1]; arr[j] = arr[j] - arr[j + 1]; arr[j + 1] = arr[j + 1] + arr[j];

这两种交换数字的方式和我们平时常用的写法是等价的(不考虑数字越界的情况):

int temp = arr[j + 1]; arr[j + 1] = arr[j]; arr[j] = temp;
http://www.jsqmd.com/news/160981/

相关文章:

  • DiskInfo下载官网替代方案:监控GPU服务器状态的完整工具链
  • PyTorch-TensorRT集成:进一步加速PyTorch-CUDA-v2.7推理性能
  • Git commit规范管理你的AI项目:结合PyTorch镜像最佳实践
  • PyTorch-CUDA-v2.7镜像内存泄漏排查:常见问题与解决方案
  • RoPE位置编码原理解析:在PyTorch-CUDA-v2.7中实现细节
  • Anaconda更换国内源:与PyTorch-CUDA-v2.7镜像协同使用
  • EchoLogic2025秋软工实践团队总结博客
  • YOLOv11模型训练实测:PyTorch-CUDA-v2.7镜像性能表现惊人
  • 2025年12月包子机/油条机/肉夹馍机/寿司机/肉夹馍生产线公司推荐榜单:五家实力企业解析 - 2025年品牌推荐榜
  • Jupyter Lab扩展安装:增强PyTorch-CUDA-v2.7开发体验
  • 大模型上下文扩展技术:PyTorch-CUDA-v2.7支持长序列处理
  • 2026年轮式机器人市场盘点:主要品类与代表性产品解析 - 智造出海
  • 计算机视觉项目首选环境:PyTorch-CUDA-v2.7镜像开箱体验
  • 2026年上半年包子机/油条机/肉夹馍机/寿司机/肉夹馍生产线公司靠谱推荐 - 2025年品牌推荐榜
  • 开源模型部署成本压缩秘籍:PyTorch-CUDA-v2.7镜像实战案例
  • 提供一站式服务的宣传片制作公司推荐 - 品牌排行榜
  • 混合精度训练实战:在PyTorch-CUDA-v2.7中启用AMP模式
  • 揭秘ChatGPT与AI Agent的本质区别:从只会聊天到自主执行任务的超级进化,开发者必藏!
  • 第三课:Open3D点云数据处理:点云格式转换
  • NumPy与PyTorch互操作:在PyTorch-CUDA-v2.7中高效交换数据
  • 2025年12月安徽淮北淮北无人机表演、淮北CAAC无人机培训、淮北政企无人机培训、淮北退役军人无人机培训、淮北无人机培训排行榜 - 2025年品牌推荐榜
  • 多GPU并行训练入门:PyTorch-CUDA-v2.7镜像支持多卡配置
  • 2025中港直通车服务指南:粤港澳跨境包车/中港直通车包车服务无忧出行首选公司 - 品致汇
  • 第四课Open3D点云数据处理:读写网格模型(mesh)与格式转换
  • 清华TUNA镜像站加速PyTorch-CUDA-v2.7下载实测
  • C语言随堂笔记-8
  • 2025年粉体自动拆包机供应商/生产厂家推荐与采购指南 - 品牌推荐大师1
  • 第五课-Open3D点云数据处理:点云、mesh可视化(draw_geometries方法)
  • 2025年粤港澳跨境出行核心攻略:中港车牌代办与粤Z车牌代办公司权威推荐 - 品致汇
  • Leetcode 56.合并区间 JavaScript (Day 6)