JavaScript基础-数组冒泡排序
学过基础知识之后,自己重新练习的时候就记不起来了,为了查看方便,本篇文章记录一下关于数组的冒泡排序问题。
为了使数组排序变得通用,将数组冒泡排序问题封装成一个函数,可以实现任意数组的排序问题。
第一步就是封装函数
第二步书写函数里面的内容
要实现一个数组的排序的话我们进行下面的分析,首先考虑一个数组[5,3,10,2,8],冒泡排序的思想是将前后两个数从小到大排序
第一次排序结果如下(一共比较了4次):
[3,5,2,8,10]
第二次排序结果如下(一共比较了3次):
[3,2,5,8,10]
第三次排序结果如下(一共比较了2次):
[2,3,5,8,10]
第四次排序结果如下(一共比较了1次):
[2,3,5,8,10]
分析了排序结果后,里面需要用到两层循环,外层循环管的是排序次数(一共是4次,也就是arr.length-1),内层循环管的是每次比较了几次(也就是arr.length-i-1)
function sortArr(arr){
for(var i = 0; i < arr.length-1; i++){
for(var j = 0; j < arr.length-i-1; j++){
if(arr[j]>arr[j+1]){
var temp = arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
return arr;
}
console.log (sortArr([5,3,10,2,8]));
最后得到排序后的结果
[2,3,5,8,10]