原理
依次比较相邻的两个值,如果后面的比前面的小,则将小的元素排到前面。依照这个规则进行多次并且递减的迭代,直到顺序正确。
时间复杂度,空间复杂度,稳定性
平均时间复杂度O(nn)
最好情况O(n)
最差情况O(nn)
空间复杂度O(1)
稳定性:稳定
冒泡排序的写法
var arr= [1,31,65,23,3,67]
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 +1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
console.log(arr)
//[1, 3, 23, 31, 65, 67]
解析:1.比较相邻的两个元素,如果前一个比后一个大,则交换位置。
2.第一轮的时候最后一个元素应该是最大的一个。
3.按照步骤一的方法进行相邻两个元素的比较,这个时候由于最后一个元素已经是最大的了,所以最后一个元素不用比较。
网友评论