啊哈算法學習筆記,JavaScript實現(xiàn)冒泡排序

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算法拆解
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容