冒泡排序算法的运作如下:
- 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
- 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
- 针对所有的元素重复以上的步骤,除了最后一个。
- 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
/**
* [冒泡排序]
* @param {array} [乱序数组]
* @return {array} [顺序/倒序数组]
*/
function bubble(arry) {
let len = arry.length - 1
let temp
for (let i = 0; i < len; i++) {
for (let j = 0; j < len; j++) {
if (arry[j] > arry[j + 1]) {
temp = arry[j]
arry[j] = arry[j + 1]
arry[j + 1] = temp
}
}
}
return arry
}
module.exports = bubble
const bubble = require('./bubble.js')
/**
* [测试函数]
* @param {number} limit [上限值]
* @param {number} num [生成数量]
*/
function test(limit, num) {
const arry = []
for (let i = 0; i < num; i++) {
arry.push(Math.floor(Math.random() * limit))
}
console.log('排序前:' + arry)
console.log('排序后:' + bubble(arry))
}
test(1000, 20)
第一个代码保存为bubble.js
第二个代码保存为test.js
用node执行test.js即可查看结果
node test.js