根据维基百科:
冒泡排序又称为泡式排序,是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
冒泡排序的算法稳定性:稳定排序算法。
时间复杂度:O(n^2)。
冒泡排序的思想是,比较相邻两个数,如果前者大于后者,就把两个数的位置相互交换;如此这般,第一轮就可以选出一个最大的数放在最后面;经过n-1轮就可以完成所有数的排序。
function bubbleSort (arr) { var len = arr.length while (len > 0) { for (var i = 0; i < len - 1; i++) { if (arr[i] > arr[i + 1]) { var temp = arr[i] arr[i] = arr[i + 1] arr[i + 1] = temp } } len-- } return arr }
或者:
function bubleSort (arr) { const len = arr.length let tempVal for (let i = len; i > 0; i--) { for (let j = 0; j < i; j++) { if (arr[j] > arr[j + 1]) { tempVal = arr[j] arr[j] = arr[j+1] arr[j+1] = tempVal } } } }
假定数组长度为n,可以看到,一共会执行n(n-1) + (n-1)(n-2) + … + (2)*(1)次循环。
最新评论
大哥资深网民啊,01年我还在念小学。。
看着有点难过。。。
嘿嘿,谢谢老哥,也祝老哥事业蒸蒸日上。
我是你唯一的药学类友情链接网站。 作为一个80后的过来人祝福你,生活越来越好。
这篇文章,我们中学那会老师课堂上念给我们听的。
哈哈哈哈哈,没想到啊, 我有手抄版
嗯,是的
好心办坏事多了去啦
哈哈,是的,我15年末来上海写代码了,一晃三年多过去了,好快。
今天看QQ好友的时候突然看到了你的名字,想起几年前在药品国际注册群挺活跃/厉害的你,现在不见踪影了。就搜了一下,没想到你现在转行去写代码了... (刚才打漏了一句话...)