javascript中的冒泡排序法

发布网友 发布时间:2022-04-22 09:50

我来回答

4个回答

热心网友 时间:2022-04-22 17:01

冒泡排序的原理是这样的,比方说有五个数字54321,要按从小到大排列;
首先比较前两个,就是5和4,如果第一个小于第二个,不做操作,如果第一个大于第二个,那么交换二者的位置,即变成45321,然后比较第二个和第三个,交换位置,变成43521,然后第三个和第四个,第四个和第五个,这样一次循环下来,变成43215
所以,一层循环的效果就是挑出最大的一个数字5,冒泡到最后面。但是还要挑出第二大,第三大的数字,等等。所以一层循环根本就不够用,必须再套一层才行。像这个例子,五个数字,起码要进行四轮循环才行。至于为什么要this.length-i,是因为第一次比较五个数字,第二个只要比较前四个就行了,第五个肯定是最大的了。。
var array = [5, 4, 3, 2, 1];
var temp = 0;
for (var i = 0; i < array.length; i++)
{
for (var j = 0; j < array.length - i; j++)
{
if (array[j] > array[j + 1])
{
temp = array[j + 1];
array[j + 1] = array[j];
array[j] = temp;
}
}
}
console.log(array);

热心网友 时间:2022-04-22 18:19

AVA气泡分类法

拓展资料

气泡排序的原理是,有五个数字54321,例如从小到大排列。

首先比较前两个,5个和4个,如果第一个小于第二个,没有运算,如果第一个大于第二个,则交换两个位置,即45321个,然后第二个和第三个,交换位置,变成43521个,然后第三个和第四个,第四个和第五个,这样的时间周期下来,转向。进入43215

因此,一个循环的效果是挑选出最大的数字5并将其泡泡到底。但是选择第二,第三等等。因此,一层循环是不够的,它必须是另一层。例如,五个数字,至少四个周期。至于为什么这个,长度-i,是因为第一个比较五个数字,第二个只要第一个四将做,第五个必须是最大的。

var数组=〔5, 4, 3,2, 1〕;

VATP=0;

对于(var i=0;i <数组,长度;i++)

{

对于(var j=0;j<数组,长度-i;j++)

{

IF(数组[j] >数组[j+1])

{

TEMP=数组[J+1 ];

数组[j+2]=数组[j];

数组[j]=TEMP;

}

}

}

控制台,日志(数组);

热心网友 时间:2022-04-22 19:54

this.length-i。 是因为i代表已经循环的次数,减i 可以降低遍历次数,你不减i 也可以实现的,只是会增加遍历次数!

资料拓展:

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成

热心网友 时间:2022-04-22 21:45

冒泡,你去了解他的原理,这样写最直观,可以用一次循环,但是有些人不容易理解两层循环,就别说一层了

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com