数据结构和算法之冒泡排序

冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就交换位置,直到没有再需要交换的元素。该算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。
否 是 是 否 开始冒泡排序 是否还有未排序的元素 排序完毕 从头开始比较相邻元素 是否需要交换元素位置 交换元素位置 继续比较下一组相邻元素 继续比较下一组相邻元素 排序结果

根据上述表格,我们可以得到详细的冒泡排序过程的描述。具体过程如下:

数据组 5 3 8 6 4
第一次排序 3 5 6 4 8
第二次排序 3 5 4 6 8
第三次排序 3 4 5 6 8
第四次排序 3 4 5 6 8

以下是使用JavaScript实现冒泡排序的示例代码:

javascript 复制代码
function bubbleSort(arr) {
   var len = arr.length; // 获取数组长度

   for (var i = 0; i < len - 1; i++) { // 外层循环控制比较轮数
     for (var j = 0; j < len - 1 - i; j++) { // 内层循环控制每轮比较次数
       // 比较相邻两个元素,如果顺序错误就交换它们
       if (arr[j] > arr[j + 1]) { // 如果当前元素大于下一个元素
         var temp = arr[j]; // 临时变量用于存储当前元素
         arr[j] = arr[j + 1]; // 将当前元素替换为下一个元素
         arr[j + 1] = temp; // 将下一个元素替换为临时变量
       }
     }
   }
   return arr; // 返回排序后的数组
}

// 使用示例
var arr = [5, 3, 8, 4, 2];
console.log(bubbleSort(arr));  // 输出 [2, 3, 4, 5, 8]

在上述代码中,bubbleSort函数接收一个数组 arr 并进行冒泡排序。内部的两层循环用于比较和交换元素的位置,外层循环控制总共需要比较的轮次。经过多轮的比较和交换,最终得到一个升序的排列。

相关推荐
kkeeper~1 小时前
0基础C语言积跬步之数据在内存中的存储
c语言·数据结构·算法
2401_868534781 小时前
论企业网络设计
数据结构
wabs6662 小时前
关于贪心算法的一些自我总结【力扣45.跳跃游戏II】【灵感来源:代码随想录】
算法·贪心算法·复盘
2401_876964132 小时前
【湖北专升本】2026湖北专升本真题PDF+备考资料汇总
数据结构·人工智能·经验分享·深度学习·算法·计算机视觉
zhangyao9403303 小时前
开发pc端时,表格的高度怎么设置才能铺满页面
前端·javascript·elementui
嗝o゚3 小时前
CANN GE 算子融合——融合算法与调度策略
算法·昇腾·cann·ge
小江的记录本3 小时前
【JVM虚拟机】垃圾回收GC:垃圾回收算法:标记-清除、标记-复制、标记-整理、分代收集(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·算法·安全·面试
XinZong3 小时前
实测OpenClaw虾淘:全民工具AI时代,冷门非工具类的Skill还能出圈吗?
javascript
烛衔溟3 小时前
TypeScript 类的类型 —— 作为类型使用
javascript·ubuntu·typescript
之歆3 小时前
Day16_JavaScript 轮播图与事件工程实战(下篇)
服务器·开发语言·前端·javascript·网络·性能优化