news 2026/2/28 5:48:39

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

作者头像

张小明

前端开发工程师

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

冒泡排序的第一种写法

代码如下:

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;
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/16 14:37:28

本地无GPU也能调试?云端加载PyTorch-CUDA镜像进行推理

本地无GPU也能调试&#xff1f;云端加载PyTorch-CUDA镜像进行推理 在深度学习项目开发中&#xff0c;一个常见的尴尬场景是&#xff1a;你写好了模型代码、准备跑通推理流程&#xff0c;结果 torch.cuda.is_available() 返回了 False——本地没有 NVIDIA 显卡&#xff0c;连最基…

作者头像 李华
网站建设 2026/2/27 21:15:08

第四课Open3D点云数据处理:读写网格模型(mesh)与格式转换

1 mesh 加载函数 1.1 函数原型 1.2 参数说明 1.3代码展示 ​编辑 1.4 判断mesh文件是否读取成功 2 mesh 保存函数 2.1 函数原型 2.2 参数说明 2.3 代码示例 2.4 Open3D支持的mesh类型 3 mesh 格式转换 3.1 ply 转 obj 3.2 ply 转 stl 3.3 ply 转 off 3.4 ply 转…

作者头像 李华
网站建设 2026/2/27 3:54:02

第六课Open3D点云数据处理:点云、mesh可视化(Visualizer类)

1 Visualizer类 2 参数详解 2.1 常用参数 2.2 渲染参数 RenderOption 详解 3 点云可视化 3.1 最简单的点云可视化 3.2 可视化多个点云 3.3 可视化点云法线 3.4 其他参数 4 mesh可视化 4.1 最简单的mesh可视化 4.2 可视化三角网格和模型内表面 4.3 可视化多个mesh 1…

作者头像 李华
网站建设 2026/2/25 4:07:45

深度解析大模型微调技术:LoRA、QLoRA、DPO全对比,建议收藏!

深度解析2025年大模型微调技术&#xff1a;LoRA、QLoRA、DPO全对比&#xff0c;建议收藏&#xff01; 文章系统介绍了大语言模型微调技术的演进与现状&#xff0c;重点分析了参数高效微调(PEFT)的革命性技术&#xff0c;包括LoRA及其改进版QLoRA、VeRA、DoRA和AdaLoRA&#xff…

作者头像 李华
网站建设 2026/2/24 14:24:02

为什么越来越多开发者选择PyTorch-CUDA预装镜像?

为什么越来越多开发者选择PyTorch-CUDA预装镜像&#xff1f; 在深度学习项目启动的前48小时里&#xff0c;你更愿意把时间花在模型设计上&#xff0c;还是反复折腾CUDA版本和驱动兼容性&#xff1f;这几乎是每个AI工程师都经历过的灵魂拷问。而如今&#xff0c;越来越多团队正在…

作者头像 李华