JS - 函数封装冒泡排序

本文探讨了JavaScript中的冒泡排序算法,详细解释了冒泡排序的原理,并提供了封装冒泡排序函数的思路和步骤。内容包括理解冒泡排序的基本概念,如何确定循环层数,设置正确的循环条件,以及在比较过程中进行判断和交换变量的操作。通过这些步骤,可以实现一个功能完整的冒泡排序函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在es5中我们主要学习了基本数据类型和引用数据类型。基本数据类型有String(字符串类型),number(数值类型),Boolean(布尔类型),undefined和null。而引用类型有对象,函数,数组。

在数组中我们有许许多多实用的方法,例如栈和队列方法,还有索引、截取、排序和迭代等等方法。其中排序的 reverse()和sort()都可以对数组进行排序。

对于排序算法而言,我们熟知的有冒泡排序、快速排序、插入排序和选择排序。

其中冒泡排序也就是升序(降序)用的比较多,那么这次来详细的对冒泡排序进行函数封装。

冒泡排序

什么是冒泡排序?

冒泡排序是一种简单的排序算法。它重复访问要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。

封装思路

对于一个算法封装而言,最重要的是要理解算法的思路。下面就是冒泡排序的主要思路:

 

 

确定循环层数

如图,一个长度为五的数组我们一个进行了四轮遍历比较,由此我们有了第一层循环,而循环的结束条件为数组长度减一(i<=a.length-1)。

 for (var i = 0; i < a.length; i++) {
}

接着继续看每一轮的比较次数,每一轮我们都进行了四次比较,而每一次比较都是依次进行,由此有了第二层循环。误区:循环时我们比较的是相邻的元素,所以当从第a[0]开始遍历时,结束条件为(j<a.length-1)不是(j<=a.length-1);

            for (var i = 0; i < a.length; i++) {
                for (var j = 0; j < a.length - 1; j++) {
                    if (a[j] > a[j + 1]) {

                    }
                }
            }

至此冒泡排序共有两层循环

判断及交换变量

当我们进行比较时,满足第一个比第二个大时我们会进行变量值交换,否则继续进行遍历循环。由此我们用到的if分支语句。

当判断满足是我们进行变量交换

                    if (a[j] > a[j + 1]) {
                        var num = '';
                        num = arr5[j];
                        a[j] = a[j + 1];
                        a[j + 1] = num;
                    }

所以当我们理解了算法思路,代码就容易实现了。

代码写完后套进函数里,那么冒泡排序的函数封装就完成了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值