冒泡排序的原理:例如要求排序结果是从小到大,那么就是前一个数字和后面一个数字相比较,如果前大于后则交换位置,如果后大于前则不交换
如下例子:
由以上分析可以发现,每一轮交换的次数等于数组长度-1-i
所以可以写两层循环,第一层for循环控制交换数据到了第几轮,第二层循环用于交换数据以及交换的次数
代码如下:
<script>
var arr = [5, 4, 3, 2, 1]
for (let i = 0; i < arr.length; i++) {
for (let j = 0; j <= arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
var t
t = arr[j]
arr[j] = arr[j + 1]
arr[j + 1] = t
}
}
}
console.log(arr)
</script>