js 数组sort()、冒泡排序

42 阅读1分钟

sort() 方法会改变原始数组

var oldArr = [15, 28, 23, 2, 1, 9];
oldArr.sort((a, b) => {
    return a - b; // 升序
});
console.log(oldArr);

冒泡排序

通过两层for循环把数组中两两相邻的元素进行比较,比较两个元素的大小,大的元素放后面,从而一步步交换元素的位置,这样最后一个元素是最大值,下一次循环比较就不需要比较这个最大值,持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

//升序
var oldArr = [6, 15, 23, 2, 1, 9];
function bubbleSort(arr) {
    for (let i = 0; i < arr.length; i++) {
        for (let j = 0; j < arr.length - i; j++) {
            // 如果前一个比后一个大,则交换位置
            if (arr[j] > arr[j + 1]) { 
                [ arr[j+1], arr[j] ] = [ arr[j], arr[j+1] ]
            }
        }
    }
    return arr;
}
console.log(bubbleSort(oldArr));