js 选择排序 冒泡排序,js冒泡排序和快速排序,JS排序之冒泡排序详解

js 选择排序 冒泡排序,js冒泡排序和快速排序,JS排序之冒泡排序详解

本文主要详细介绍了JS冒泡排序的相关信息,具有一定的参考价值。感兴趣的朋友可以参考一下。

本文分享JS冒泡排序的具体代码,供大家参考。具体内容如下

说明

时间复杂度指的是算法执行所需的时间。

空间复杂度是指运行一个程序所需的内存量。

稳定是指如果a=b,A领先于B,排序后A仍然领先于B。

不稳定是指如果a=b,A排在B之前,排序后可能会改变位置。

--JS冒泡排序--

原理

依次比较两个相邻的值,如果后者小于前者,则将较小的元素排在第一位。按照这个规则,迭代几次,逐步进行,直到顺序正确。

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

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

最佳情况O(n)

最坏情况O(n*n)

空间复杂度O(1)

稳定性:稳定性

冒泡排序的书写方法

var examplearr=[8,94,15,88,55,76,21,39];

函数sortarr(arr){

for(I=0;iarr . length-1;i ){

for(j=0;jarr . length-1-I;j ){

if(arr[j]arr[j 1]){

var temp=arr[j];

arr[j]=arr[j 1];

arr[j 1]=temp;

}

}

}

返回arr

}

sortarr(example arr);

console . log(example arr);

解析

两个周期

当i=0时,里面的循环执行完毕,从j=0到j=6,是第一次排序通过,结果是最大数排在最后。这个循环结束后的结果应该是[8,15,88,55,76,21,39,94]

当i=1时,再次完全执行内部的循环。由于最大的数字已经在末尾,所以没有必要比较数组的最后两项。这也是jarr.length-1-i的巧妙之处,结果是[8,15,55,76,21,39,88,94]

在这一点上,规则是清楚的。每次剩余数组中最大的数都排到后面,当第一个循环执行到最后,也就是i=6时。此时j=0,你只需要比较数组的第一项和第二项。比较之后,返回。

这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

js 选择排序 冒泡排序,js冒泡排序和快速排序,JS排序之冒泡排序详解