假设我们有一个未经排序的数组,我们被要求以任何升序或降序对数组进行排序。泡点排序是最简单的排序算法之一,它比较两个并排的项目并对数组进行排序。有许多算法可用于对数组进行排序,如选择排序和合并排序等。在这篇文章中,我们将学习如何使用冒泡排序来对数组元素进行排序。
气泡排序的工作原理
假设我们想对我们的数组进行升序排序。它的工作原理是比较左边的索引和右边的索引。最初,它将比较数组中前两个索引的值。只有当第1个索引的值比第0个索引的值小时,第0个索引的值才会被替换。 接下来,它将比较第1个索引的值和第2个索引的值,以此类推。
假设我们有下面这个未排序的数组。

我们知道,在数组中,索引是从0开始的。所以最初,**"8 "被存储在第0个索引,"3 "被存储在第一个索引,"1 "**被存储在第二个索引,以此类推。现在,我们必须对这个数组进行升序排序,如下面给出的数组所示。

现在,我们将逐步解释气泡排序的工作。
第1步
一开始,索引0携带8,而索引1携带3。由于我们必须对数组进行升序排序,因此,索引0的值将被替换为索引1的值。现在,更新后的数组将是。

现在索引1的值将与索引2的值进行比较。索引1的值是8,而索引2的值是1,小于8,所以它将被交换,数组将被修改为。

现在,我们将在索引2和索引3之间做一个比较。索引2的值是8,大于索引3的值2,所以这两个值将被互换。

现在比较索引3的值和索引4的值。索引3的值是8,而索引4的值是-1,这意味着这两个值将被调换。

最后,索引4的值将与索引5的值进行比较。同样,8比7大,所以它将被替换成7。

现在,第一次迭代完成了,"8 "到达了它的适当位置。因此,在下一步中,比较将一直进行到第4个索引,因为最后一个索引的值已经被排序。
第2步
现在,前两个索引将被比较。第1个索引的值小于第0个索引的值,因此它们的值将被调换。

接下来,我们将比较第一个索引的值和第二个索引的值。这里,3比2大,所以,它将被替换为2。

现在我们将比较第2和第3个索引的值,即3(第2个索引)和第3个索引的值,即-1。由于3大于-1,所以数值将再次被交换。

第3个索引的值已经小于第4个索引的值,所以,它将保持不变。

现在,最后两个索引被排序,数值被正确地放在第四和第五个索引上。
第3步
现在在这个迭代中,最初第0个索引的值将与第1个索引的值比较。这里,第0个索引的值是1,已经小于第1个索引的值2,所以,这些值将保持不变。

接下来,比较接下来的两个索引,这里第1个索引的值大于第2个索引的值,因此,它们的值将被互换。

第2个索引的值已经小于第3个索引的值,因此,它们的值不会被交换。

第4步
比较前两个索引。第0个索引的值是1,小于第1个索引的值(-1),所以它将被调换。

接下来,我们将比较第1个索引的值和第2个索引的值。它们已经被排序了,所以它们将保持一致。

最后,我们的数组是按升序排序的。
在JavaScript中实现冒泡排序
既然我们了解了气泡排序的工作原理,现在我们将使用嵌套循环在JavaScript中实现这一逻辑。
functionbubbleSort(ary){
leti, j;
varflag = false;
for(i =0; i<ary.length; i++)
{
flag = false;
for(j = 0; jary[j + 1])
{
vartemp = ary[j]
ary[j] = ary[j+1];
ary[j+1] = temp;
flag = true;
}
}
if(!flag)
{
break;
}
}
console.log(ary)
}
varary = [8, 3, 1, 2, -1, 7];
bubbleSort(ary);

在上面给出的代码中,我们创建了一个名为**'ry'** 的数组,并向其分配了一些数据。之后,我们创建了一个名为bubbleSort的 函数,并将数组传递给它。一个名为**'flag'** 的变量最初被赋值为**'false'。**这个标志将被用来验证数组是否被完全排序了。接下来,for-loop被初始化为0,它将被执行,直到它小于数组的长度。
嵌套for-loop被用来对当前索引的值和相邻索引的值进行比较,只有当当前索引的值高于其相邻索引的值时,这些值才会被交换。如果在迭代过程中任何数值被交换,标志的值将被替换为真。
一旦内循环结束,将检查标志变量。如果标志变量保持为假,这意味着数组已经被整理好了,内循环没有改变任何东西。在这种情况下,只需中断该循环。
最后,数组被传递给**bubbleSort()**函数。其输出结果将是。

结论
泡沫排序是一种基本的排序算法,它反复交换并排的元素,直到它们的顺序不正确为止。在这篇文章中,我们介绍了理解JavaScript中的冒泡排序概念所需的所有基础知识和基本知识。从介绍开始,描述了什么是冒泡排序以及它是如何工作的。然后我们举了一个例子来理解冒泡排序的概念。此外,我们用JavaScript实现了同一个例子,并详细讨论了它的工作原理。