let t;//排序中需要用到的變量
let a = [];//給出排序后的數(shù)組
function bubbleSequence(arr) {
let arrLength = arr.length;
for (let i = 1; i <= arrLength; i++) {
a[i] = arr[i - 1];
}
console.log(a, 'a');
for (let i = 1; i <= arrLength - 1; i++) {
for (let j = 1; j <= arrLength - i; j++) {
if (a[j] < a[j + 1]) {
t = a[j + 1]; a[j + 1] = a[j]; a[j] = t;
}
}
}
for (let i = 1; i <= arrLength; i++) {
console.log(a[i]);
}
}
bubbleSequence([2, 3, 1, 0, 7, 9]);
- 排序為從小到打排序,兩個for循環(huán),內(nèi)層循環(huán)每一次循環(huán)找到相鄰的更小的數(shù)字,往后移動一位,
- 每次一套(不是一次)循環(huán)找到當前比較的所有的元素中最小的排在最后,
- i=1對應(yīng)的內(nèi)層j輪詢比較出第一小的數(shù)字,i=2,比較出第二小的數(shù)字,以此類推
- 假設(shè)有五個數(shù)字需要比較,比較初第四小的數(shù)字進行排序之后就整個排序結(jié)束了
-
下圖以一個length為6的數(shù)組為例子拆解了整個過程
bubble算法拆解
