首页技术js冒泡排序,js冒泡排序从大到小

js冒泡排序,js冒泡排序从大到小

编程之家2026-06-09726次浏览

大家好,今天小编来为大家解答以下的问题,关于js冒泡排序,js冒泡排序从大到小这个很多人还不知道,现在让我们一起来看看吧!

js冒泡排序,js冒泡排序从大到小

JS排序之冒泡排序以及写法

时间复杂度指的是一个算法执行所耗费的时间

空间复杂度指运行完一个程序所需内存的大小

稳定指,如果a=b,a在b的前面,排序后a仍然在b的前面

不稳定指,如果a=b,a在b的前面,排序后可能会交换位置

原理

依次比较相邻的两个值,如果后面的比前面的小,则将小的元素排到前面。依照这个规则进行多次并且递减的迭代,直到顺序正确。

js冒泡排序,js冒泡排序从大到小

时间复杂度,空间复杂度,稳定性

1.平均时间复杂度O(n*n)

2.最好情况O(n)

3.最差情况O(n*n)

4.空间复杂度O(1)

5.稳定性:稳定

js冒泡排序,js冒泡排序从大到小

冒泡排序的写法

两个循环

当i=0的时候,里面的循环完整执行,从j=0执行到j=6,这也就是第一遍排序,结果是将最大的数排到了最后,这一遍循环结束后的结果应该是[8,15,88,55,76,21,39,94]

当i=1的时候,里面的循环再次完整执行,由于最大的数已经在最后了,没有必要去比较数组的最后两项,这也是j<arr.length-1-i的巧妙之处,结果是[8,15,55,76,21,39,88,94]

说到这里,规律就清楚了,北京北大青鸟建议每次将剩下数组里面最大的一个数排到最后面,当第一个循环执行到最后的时候,也就是i=6,此时,j=0,只需要比较数组的第一和第二项,比较完毕,返回。

javascript中的冒泡排序法

冒泡排序的原理是这样的,比方说有五个数字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);

关于js冒泡排序和js冒泡排序从大到小的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

卡鲁亚克声望怎么冲(卡鲁亚克战袍哪里买)破阵宝箱奖励一览,藏宝破阵宝箱有什么用