逻辑
比如我们现在要将54321正序排列,那么我们就要设计相应的算法来实现。
- 首先明确我们要用循环来设计它的算法
- 然后设计循环的思路
- 比如从第一个数字5开始冒泡,那么5冒泡到最后就需要比较4次,也就是走4趟
- 第一层:5个数字一共要走4趟(最后一个数已经不用走了,自然排序好了)(所以这一层为为:arr.length-1)
- 第二层:为交换次数(比如:5要换4次才能停止,4要换3次才能停止…)(arr.length-i-)
- 第三层:交换两个变量的实现( if 实现)
<script>
let arr=[2,4,3,5,1]
// 逻辑
for(let i=0;i<arr.length-1;i++){
for(let j=0;j<arr.length-i-1;j++){
if(arr[j]>arr[j+1]){
// 跟后面那个数比较,确定是否需要交换
let temp=arr[j]
arr[j]=arr[j+1]
arr[j+1]=temp
}
}
}
// 排序的方法(开发的时候无需写上面的)
arr.sort()
console.log(arr)
</script>
数组排序
- 默认是升序
sort()
// 升序排列法
arr.sort(function(a,b){
return a-b
})
console.log(arr)
//————————————————————————————————
// 降序排列法
arr.sort(function(a,b){
return b-a
})
console.log(arr)