其实,冒泡排序的思想就是:
让数组中的当前项和后一项进行比较,如果当前项比后一项大,则两项交换位置(让大的靠后)即可,直到最后变为从小到大
下面我放张我自己画的图可能会更好理解一下:
(…并不是所有的数组都进行一轮判断,下图只是个例外,正常的话第一轮判断结束后数组不是从小到大排序的)
下面话不多说,放代码啦:
//创建个函数来判断
function bubble(arr){
//当改变前后两个的值的时候,需要拿个变量来接收一下
let temp=null
//外层循环判断轮数
for(var i=0;i<arr.length-1;i++){
//i=0 第一次循环 一个都没放呢
//i=1 第二次循环 已经放了一个了
//内层循环判断每一轮的次数
for(var j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
//如果当前数大于后一个数
temp=arr[j]
arr[j]=arr[j+1]
arr[j+1]=temp
}
}
}
//返回这个数组
return arr;
}
//创建一个数组
let arr=[12,3,4,46,23]
//给数组赋值并调用自己写的冒泡排序函数
arr=bubble(arr)
//最后输出
console.log(arr)
此时页面上就显示出来已经排好序的数组啦~