解析:1.比较相邻的两个元素,如果前一个比后一个大,则交换位置。
2.第一轮的时候最后一个元素应该是最大的一个。
3.按照步骤一的方法进行相邻两个元素的比较,这个时候由于最后一个元素已经是最大的了,所以最后一个元素不用比较。
function bubbleSort(arr) {
var len = arr.length; //获得数组长度
if(len<=1){//如果数组长度小于等于1则直接返回数组
return arr;
}
for (var i = 0; i < len; i++) { //第一个for循环遍历数组中每个元素
for (var j = 0; j < len - 1 - i; j++) { //第二个for遍历排出最大的放在最后
if (arr[j] > arr[j+1]) { // 相邻元素两两对比
var temp = arr[j+1]; // 元素交换
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
return arr;//返回数组
}
时间复杂度:最优O(n);最差O(n^2);平均O(n^2);
空间复杂度:O(1);

浙公网安备 33010602011771号