电竞比分网-中国电竞赛事及体育赛事平台

分享

用原生JS寫冒泡排序及動畫演示

 小世界的野孩子 2021-09-15

法一(自定義函數(shù))

請點擊:冒泡排序動畫演示(遍歷多少行、每行交換多少次)

/*步驟構(gòu)思: 1、聲明命名函數(shù)(形參數(shù)組)
            2、for設(shè)置外循環(huán), 控制遍歷多少趟
            3、for設(shè)置內(nèi)循環(huán), 控制遍歷交換多少次
            4、if設(shè)置滿足兩兩比較條件, 索引號進行兩兩和臨時變量的交換
            5、return返回值
            6、變量儲存=調(diào)用函數(shù)(實參數(shù)組)
            7、 控制臺打印變量輸出  */

function bubble(arr) {
    for (var i = 0; i < arr.length; i++) {
        for (var j = 0; j < arr.length - 1; j++) {
            if (arr[j] > arr[j + 1]) {
                var temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
    return arr;
}
var arr = bubble([100, 26, 4, 13, 200, -21, 59]);
console.log(arr);  // [-21, 4, 13, 26, 59, 100, 200]

 

法二(內(nèi)置對象)

function bubSort(newArr) {
    /*  注意:內(nèi)置的對象方法sort()會調(diào)用toString()轉(zhuǎn)型,即比較字符串
        解決:sort()接收一個比較函數(shù)compare來解決字符串長度一樣的數(shù)字大小比較 */
    function compare(value1, value2) {
        if (value1 < value2) {
            return -1;
        } else if (value1 > value2) {
            return 1;
        } else {
            return 0;
        }
    }
    newArr.sort(compare); // 對象.sort()是一個內(nèi)置在JS可以直接被調(diào)用的方法
    return newArr;
}
var newArr = bubSort([100, 200, 26, 13, 4, 87, -66, 59]);
console.log(newArr); //[-66, 4, -13, 26, 59, 87, 100, 200]

 

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多