JavaScript 进阶第三章(数组排序-冒泡算法)

简介: JavaScript 进阶第三章(数组排序-冒泡算法)

算法algorithm,是一种解决问题的方法


算法的目标:使用最少的内存,最短的时间,解决最多的问题


冒泡算法:


重复地走访过要排序的元素列,依次比较两个相邻的元素


顺序正确:代表位置正确,不需要交换


顺序错误:交换两个元素,让顺序正确


<script>
  /*
    冒泡算法(顺序:从小到大)
    1.从第一个元素开始,比较下一个元素
      * 如果前面一个大于后面的元素:交换
      * 如果前面一个小于或者等于后面的元素:不用动
    2.循环比较数组中的每一个元素:直到最大的那个元素到达数组最后
    3.一次循环,只能得出最大的数据排到最后,因此需要根据数组元素的长度来进行循环嵌套
      * 一次只能让当前最大的到最后(如果原来最大的就在最后,那么就是次大的)
      * 根据数组长度实现:每次都能得出一个最大,直到全部都排好序
  */
    // 定义一个无序数组
    let arr = [3,5,1,8,6,2];
    // 外部循环:决定里面循环的次数
    for(let i = 0;i < arr.length;i++){
        // 内部循环:决定当前最大的元素跑到正确的位置去
        for(let j = 0;j < arr.length - 1;j++){
            // j < arr.length - 1 是因为需要进行向后一个进行元素匹配
            // 判定当前元素与后一个元素的关系:前面大于后面:交换(其他情况不用变)
            if(arr[j] > arr[j+1]){
                // 交换两个元素的值:采用第三个变量
                let temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
    console.log(arr);   // [1,2,3,5,6,8]
</script>
相关文章
|
2天前
|
缓存 JavaScript 前端开发
【JavaScript 技术专栏】DOM 操作全攻略:从基础到进阶
【4月更文挑战第30天】本文深入讲解JavaScript与DOM交互,涵盖DOM基础、获取/修改元素、创建/删除元素、事件处理结合及性能优化。通过学习,开发者能掌握动态改变网页内容、结构和样式的技能,实现更丰富的交互体验。文中还讨论了DOM操作在实际案例、与其他前端技术结合的应用,助你提升前端开发能力。
|
2天前
|
JavaScript 前端开发 算法
JavaScript 中的 if 判断:深入理解、实战应用与进阶技巧
【4月更文挑战第7天】探索 JavaScript 中的 if 判断语句,它是构建逻辑清晰程序的基础。了解其概念、语法、应用示例及编程技巧,包括条件控制、else if 结构、三目运算符。注意条件表达式简洁性,避免 falsy 值陷阱,利用逻辑运算符优化,并减少 if 嵌套。实践这些技巧将提升编程能力和代码质量。
25 0
|
2天前
|
算法 JavaScript 前端开发
LZH 算法的模拟实现,JavaScript 版本
LZH 算法的模拟实现,JavaScript 版本
15 0
|
2天前
|
数据采集 Web App开发 JavaScript
JavaScript爬虫进阶攻略:从网页采集到数据可视化
JavaScript爬虫进阶攻略:从网页采集到数据可视化
|
2天前
|
算法 搜索推荐 JavaScript
NodeJ实现冒泡算法
NodeJ实现冒泡算法
22 0
|
2天前
|
算法 搜索推荐 Java
Java实现冒泡算法
Java实现冒泡算法
11 0
|
2天前
|
算法 JavaScript 前端开发
彩票中奖率的真相:用 JavaScript 看透彩票背后的随机算法(下)
至于分发?我们可以参考一下市面上已有的一些概念做一下对比,下面是笼统的一个网络服务器的TPS预估值,也就是说彩票服务器在1秒内可以处理的最大请求数:
|
2天前
|
JavaScript 前端开发 算法
JavaScript的垃圾回收机制通过标记-清除算法自动管理内存
【5月更文挑战第11天】JavaScript的垃圾回收机制通过标记-清除算法自动管理内存,免除开发者处理内存泄漏问题。它从根对象开始遍历,标记活动对象,未标记的对象被视为垃圾并释放内存。优化技术包括分代收集和增量收集,以提升性能。然而,开发者仍需谨慎处理全局变量、闭包、定时器和DOM引用,防止内存泄漏,保证程序稳定性和性能。
17 0
|
2天前
|
算法 JavaScript 前端开发
三个js算法
三个js算法
8 2
|
2天前
|
算法 JavaScript
js的两个常用算法
js的两个常用算法
5 1