冒泡排序
目的:把一系列数据按照一定顺序排列显示
核心思路:重复走访要排序的数,一次比较两个元素,如果它们顺序错误就把它们顺序交换过来
举例
比如把[5,4,3,2,1]这个序列从小到大排序
第一轮
5和4比较,5>4,交换位置;5和3比较,5>3,交换位置;5和2比较,5>2,交换位置;5和1比较,5>1,交换位置,一共比较了(数组长度-1 = 4)次,全部结束得到第一轮结果
结果:4,3,2,1,5
第二轮
4和3比较,4>3,交换位置;4和2比较,4>2,交换位置;4和1比较,4>1,交换位置,一共比较了(数组长度-2 = 3)次,全部结束得到第二轮结果
结果:3,2,1,4,5
第三轮
3和2比较,3>2,交换位置;3和1比较,3>1,交换位置;一共比较了(数组长度-3 = 2)次,全部结束得到第三轮结果
结果:2,1,3,4,5
第四轮
2和1比较,2>1,交换位置;一共比较了(数组长度-4 = 1)次,全部结束得到第四轮结果
结果:1,2,3,4,5
代码实现
//从小到大排序
function sort(arr) {
//执行轮数 数组长度-1
for (var i = 0; i < arr.length-1; i++) {
//执行次数 数组长度 - i
for (var j = 0; j < arr.length - i; j++) {
//顺序不对,两数交换
var temp = 0;
if (arr[j] > arr[j + 1]) {
temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
console.log(sort([5, 4, 3, 2, 1]));
输出结果:[1,2,3,4,5]
Comments NOTHING