核心是二次循环:
1.外层循环次数为数据总长度-1次
2.内层循环次数为数据总长度-1次-当前第几轮循环
一.javascript 版实现
function bubbleSort(arr){
var L = arr.length;
for(var i=1; i<L; i++) {
console.log("==========外层循环:" + i);
for(var j=0; j<L-i; j++){
console.log("内层循环:" + j);
if (arr[j] > arr[j+1]) { // 相邻元素两两对比
[ arr[j+1], arr[j] ] = [ arr[j], arr[j+1] ] // 元素交换
}
}
}
return arr
}
// 测试例子
arr1 = [100, 23, 1, 40, 8]
console.log(bubbleSort(arr1));
一.python 版实现
def bubble_sort(arr):
L = len(arr)
for i in range(1, L):
for j in range(L-i):
if arr[j] > arr[j+1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
return arr