用JavaScript写一个冒泡排序

简介: 用JavaScript写一个冒泡排序

冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

下面是一个用JavaScript实现冒泡排序的示例代码:

jsfunction bubbleSort(arr) {
let len = arr.length;
for (let i = 0; i < len - 1; i++) {
// 这一层循环控制比较的轮数,每一轮都会将一个未排序的元素放置到最后
for (let j = 0; j < len - 1 - i; j++) {
// 内层循环控制每轮比较的次数,每次比较两个相邻的元素
if (arr[j] > arr[j + 1]) {
// 如果前一个元素大于后一个元素,就交换这两个元素的位置
[arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
}
}
}
return arr;
}

详细解析:

  • 外层循环:最外层的循环控制比较的轮数,每一轮都会将一个未排序的元素放置到最后。所以,如果要对n个元素进行排序,就需要进行n-1轮比较。
  • 内层循环:内层循环控制每轮比较的次数。在每一轮比较中,都会从第一个元素开始,依次比较相邻的两个元素。如果它们的顺序错误,就交换它们的位置。这样,每一轮比较结束后,最后一个元素就是最大的元素。因此,内层循环的范围是0到n-i-1,其中i是外层循环的迭代次数。
  • 比较和交换:在每一轮比较中,从第一个元素开始,依次比较相邻的两个元素。如果前一个元素大于后一个元素,就交换这两个元素的位置。这是通过使用JavaScript的数组解构赋值语法实现的。这种语法可以交换两个变量的值,而不需要使用额外的临时变量。
相关文章
|
4月前
|
JavaScript 前端开发 搜索推荐
实现JavaScript中的数组排序功能
实现JavaScript中的数组排序功能
|
7月前
|
搜索推荐
Javascript-冒泡排序
Javascript-冒泡排序
22 0
|
7月前
Javascript-选择排序
Javascript-选择排序
31 0
|
8月前
|
搜索推荐 算法 JavaScript
JavaScript实现的7种排序算法
JavaScript实现的7种排序算法
35 0
|
10月前
|
JavaScript 前端开发 搜索推荐
JavaScript 中的冒泡排序
JavaScript 中的冒泡排序
|
11月前
|
算法 JavaScript 前端开发
javascript算法排序之冒泡排序
javascript算法排序之冒泡排序
98 0
|
12月前
|
JavaScript 前端开发 搜索推荐
JavaScript中几个常用的数组排序方法
大家好,我是Emo_TT。今天我来给大家介绍一下JavaScript中几个常用的数组排序方法。
|
JavaScript 前端开发
JavaScript数组的简单排序
JavaScript数组的简单排序 前面的博客分两章分别讲解了数组对象的基本属性和方法,以及数组迭代方法的使用。今天我们再来讲一讲数组的排序问题。 1.数组的sort()方法 说到数组的排序,大家可能第一反应是前面学过一个数组排序的方法sort(),但是使用这个方法时要注意,sort()本身时可以传参数的,如果不传参数,那我们对数组项进行排序时就会按照ASCII字符顺序排序(也可以理解为字典的排序方式)。比如: var arr=[&quot;a&quot;,&quot;A&quot;,10,1,20,2]; console.log(arr.sort());//[1,10,2,20,&quot;A&quot;,&quot;a&quot;] 1
JavaScript数组的简单排序
|
JavaScript 前端开发
简单解析JavaScript中数组的冒泡排序和选择排序
简单解析JavaScript中数组的冒泡排序和选择排序 上篇博客我们讲解了数组的sort()方法,这篇博客我们来讲一下数组的另外两种排序方法:冒泡排序和选择排序。其中冒泡排序在前端面试中笔试部分经常会被问到。 1.冒泡排序 冒泡排序:简单解释,就是相邻两元素之间两两比较,比较出大值进行赋值互换,再依次与相邻的元素比较,层层递进互换元素位置,相互赋值,最后得出排序的结果。 在这里插入图片描述 var arr = [100, 20, 9, 3, 22, 111, 28, 55]; // js数组的冒泡排序 // var arr=[1,2,3,4] // 第一层
简单解析JavaScript中数组的冒泡排序和选择排序
|
JavaScript 前端开发 索引
javascript 之二分查找
javascript 之二分查找
52 0