法一(自定義函數(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]
|