Javascript冒泡排序算法详解
作者:bea
比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 代码如下: function sort(elements){ for(var i=0;i<elements.length-1;i++){ for(var j=0;j<element
比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
代码如下:
function sort(elements){
for(var i=0;i<elements.length-1;i++){
for(var j=0;j<elements.length-i-1;j++){
if(elements[j]>elements[j+1]){
var swap=elements[j];
elements[j]=elements[j+1];
elements[j+1]=swap;
}
}
}
}
var elements = [3, 1, 5, 7, 2, 4, 9, 6, 10, 8]; console.log('before: ' + elements); sort(elements); console.log(' after: ' + elements);
效率:
时间复杂度:最好:O(n),最坏:O(n^2),平均:O(n^2)。
空间复杂度:O(1)。
稳定性:稳定。
有用 | 无用
代码如下:
function sort(elements){
for(var i=0;i<elements.length-1;i++){
for(var j=0;j<elements.length-i-1;j++){
if(elements[j]>elements[j+1]){
var swap=elements[j];
elements[j]=elements[j+1];
elements[j+1]=swap;
}
}
}
}
var elements = [3, 1, 5, 7, 2, 4, 9, 6, 10, 8]; console.log('before: ' + elements); sort(elements); console.log(' after: ' + elements);
效率:
时间复杂度:最好:O(n),最坏:O(n^2),平均:O(n^2)。
空间复杂度:O(1)。
稳定性:稳定。
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- jquery实现动态画圆
- javascript数组遍历for与for in区别详解
- 详谈nodejs异步编程
- c#+JQurey实现获取radio和checkbox的值
- express的中间件cookieParser详解
- express的中间件bodyParser详解
- express的中间件basicAuth详解
- 详解JS函数重载
- 如何让你的Lightbox支持滚轮缩放及Base64图片
- javascript常用代码段搜集
- 5种处理js跨域问题方法汇总
- 用js读、写、删除Cookie代码续篇
- 基于jquery实现等比缩放图片
- javascript简单实现图片预加载
- 3种Jquery限制文本框只能输入数字字母的方法
- javascript引擎长时间独占线程造成卡顿的解决方案
- javascript中clone对象详解
- javascript使用正则表达式检测IP地址
- Javascript快速排序算法详解