js冒泡、快排的简单写法

自写的比较简单通俗的冒泡和快速排序的js代码函数

// 冒泡排序
let testArr = [85, 24, 63, 45, 17, 31, 96, 50];
let testResult = bubbleSort(testArr);
console.log("testResult : ", testResult);

function bubbleSort(arr) {
    arr.forEach((element, index) => {
        for(let i=index+1; i<arr.length; i++) { // 和之后的每一个元素进行比较
            if (arr[index] > arr[i]) {
                [arr[index], arr[i]] = [arr[i], arr[index]];
            }
        }
    });
    return arr;
}
复制代码
// 快速排序
let quickSort = function(arr) {
    if (arr.length <= 1) {
        return arr;
    };
    let mid = arr[Math.round(arr.length/2) - 1];
    let arrLeft = [];
    let arrRight = [];
    for (let i=0; i<arr.length; i++) {
    	if (arr[i] < mid) {
            arrLeft.push(arr[i]);
    	};
    	if (arr[i] > mid) {
            arrRight.push(arr[i]);
        };
    };
    console.log(quickSort(arrLeft).concat([mid], quickSort(arrRight)));
    // 必须有return,否则会报错,查了一下好像说是递归函数的问题
    return quickSort(arrLeft).concat([mid], quickSort(arrRight));
};

let testArr = [85, 24, 63, 45, 17, 31, 96, 50];
let testResult = quickSort(testArr);
console.log("testResult", testResult);复制代码
相关文章
相关标签/搜索