js冒泡排序
**冒泡排序**
冒泡排序按照一定的遍历规则(从小到大、从大到小),对数据进行遍历,每一轮遍历结束会确定一个最大值或者最小值,在对剩下的数据再次进行重复操作,直到最后剩余一个元素。
let arr = [8,9,1,7,2,3,5,4,6,0]; for(let i = 0;i < arr.length;i++){ for(let j = 0;j <arr.length-i;j++){ if(arr[j]>arr[j+1]){ let t = arr[j]; arr[j] = arr[j+1]; arr[j+1] = t; } } console.log([...arr]) }
步骤详解:
这里的遍历规则是从小到大排列,每一轮确定一个最大值。数组长度为10
第一轮:
i = 0 j最大为9 : 8和9对比,8<9,位置不变 [8,9,1,7,2,3,5,4,6,0]
9和1对比,9>1,交换位置 [8,1,9,7,2,3,5,4,6,0]
9和7对比,9>7,交换位置 [8,1,7,9,2,3,5,4,6,0]
9和2对比,9>2,交换位置 [8,1,7,2,9,3,5,4,6,0]
9和3对比,9>3,交换位置 [8,1,7,2,3,9,5,4,6,0]
9和5对比,9>5,交换位置 [8,1,7,2,3,5,9,4,6,0]
9和4对比,9>4,交换位置 [8,1,7,2,3,5,4,9,6,0]
9和6对比,9>6,交换位置 [8,1,7,2,3,5,4,6,9,0]
9和0对比,9>0,交换位置 [8,1,7,2,3,5,4,6,0,9]
至此,第一轮结束得到最大值为9,确定最后一位位置。
第二轮:
i=0 j最大为8 继续后续对比得到第二个最大数。依次遍历,最后j最大为0时,确定数组排序。
结果为: