冒泡排序
原理
- n轮排序,每一轮,将前一个数和后一个数做对比,如果前一个数大于后一个数,两个数交换
- 第一轮可以将最大的放到最后,第二轮可以将第二大的放到倒数第二的位置...
优化
- 如果某一轮一个都没有交换,则结束了
- 当一个下标之后都没有交换的话,后面的排序好了,下次只需要遍历到标记的下表位置
function toSortByBubble(nums) {
let _lastNeedSortIndex = nums.length - 1
let m = 0
for(;m < nums.length;m++){
let n = 0,lnsi = 0
for(;n < _lastNeedSortIndex;n++){
if(nums[n] > nums[n+1]){
let _temp = nums[i]
nums[i] = nums[j]
nums[j] = _temp
lnsi = n
}
}
console.log(lnsi)
if(lnsi == 0) {
break
} else {
_lastNeedSortIndex = lnsi
}
}
return nums
}