news 2026/5/28 6:19:27

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
经典算法题型之排序算法(三)

冒泡排序的第二种写法

第二种写法是在第一种写法的基础上改良而来的:

public static void bubbleSort(int[] arr) { // 初始时 swapped 为 true,否则排序过程无法启动 boolean swapped = true; for (int i = 0; i < arr.length - 1; i++) { // 如果没有发生过交换,说明剩余部分已经有序,排序完成 if (!swapped) break; // 设置 swapped 为 false,如果发生交换,则将其置为 true swapped = false; for (int j = 0; j < arr.length - 1 - i; j++) { if (arr[j] > arr[j + 1]) { // 如果左边的数大于右边的数,则交换,保证右边的数字最大 int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; // 表示发生了交换 swapped = true; } } } }

最外层的 for 循环每经过一轮,剩余数字中的最大值仍然是被移动到当前轮次的最后一位。这种写法相对于第一种写法的优点是:如果一轮比较中没有发生过交换,则立即停止排序,因为此时剩余数字一定已经有序了。

看下图演示:

图中可以看出:

  • 第一轮排序将数字 6 移动到最右边;
  • 第二轮排序将数字 5 移动到最右边,同时中途将 1 和 2 排了序;
  • 第三轮排序时,没有发生交换,表明排序已经完成,不再继续比较。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/26 22:23:17

如何在Linux上使用Miniconda-Python3.11部署PyTorch并启用CUDA加速

如何在 Linux 上使用 Miniconda-Python3.11 部署 PyTorch 并启用 CUDA 加速 在深度学习项目中&#xff0c;一个稳定、可复现且能充分发挥硬件性能的开发环境至关重要。现实中&#xff0c;许多开发者都曾遭遇“在我机器上能跑”的尴尬局面——这往往源于 Python 包版本冲突、CU…

作者头像 李华
网站建设 2026/5/27 22:22:17

Windows也能用苹果苹方字体?3分钟搞定跨平台字体统一

Windows也能用苹果苹方字体&#xff1f;3分钟搞定跨平台字体统一 【免费下载链接】PingFangSC PingFangSC字体包文件、苹果平方字体文件&#xff0c;包含ttf和woff2格式 项目地址: https://gitcode.com/gh_mirrors/pi/PingFangSC 还在为Windows电脑显示不出苹果苹方字体…

作者头像 李华
网站建设 2026/5/22 20:16:30

Jupyter Notebook配置指南:在Miniconda-Python3.11镜像中运行PyTorch代码

Jupyter Notebook配置指南&#xff1a;在Miniconda-Python3.11镜像中运行PyTorch代码环境搭建的现实挑战 在深度学习项目开发中&#xff0c;一个看似简单的问题常常耗费数小时&#xff1a;为什么别人的代码在我这跑不起来&#xff1f;明明装了同样的库&#xff0c;却总提示“Mo…

作者头像 李华
网站建设 2026/5/21 12:04:11

Neuro项目终极部署指南:打造专属AI虚拟主播

Neuro项目终极部署指南&#xff1a;打造专属AI虚拟主播 【免费下载链接】Neuro A recreation of Neuro-Sama originally created in 7 days. 项目地址: https://gitcode.com/gh_mirrors/neuro6/Neuro 想要拥有一个能实时对话、表情丰富的AI虚拟主播吗&#xff1f;Neuro项…

作者头像 李华
网站建设 2026/5/24 16:10:19

Playback播放器:重新定义您的视频播放体验

Playback播放器&#xff1a;重新定义您的视频播放体验 【免费下载链接】playback Video player built using electron and node.js 项目地址: https://gitcode.com/gh_mirrors/pl/playback 您是否厌倦了在不同播放器之间来回切换&#xff1f;是否曾因格式不兼容而无法观…

作者头像 李华
网站建设 2026/5/23 19:58:54

CosId分布式ID生成器完整指南:从入门到精通的快速掌握

CosId分布式ID生成器完整指南&#xff1a;从入门到精通的快速掌握 【免费下载链接】CosId Universal, flexible, high-performance distributed ID generator. | 通用、灵活、高性能的分布式 ID 生成器 项目地址: https://gitcode.com/gh_mirrors/co/CosId 在当今分布式…

作者头像 李华