Javascript实现冒泡算法和快速排序算法

57 阅读1分钟

Javascript实现冒泡算法和快速排序算法

冒泡算法 `

function maopao(arr) {  
    if (arr === null || !arr.length) return arr;  
        for (let i = 0; i < arr.length - 1; 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;
   }

冒泡算法添加标识位进行优化

function maopao(arr) {  
    if (arr === null || !arr.length) return arr;  
    let isFlag = false;  
    for (let i = 0; i < arr.length - 1; i++) {    
        for (let j = 0; j < arr.length - i; j++) {      
            if (arr[j] > arr[j + 1]) {        
                isFlag = true;        
                [arr[j + 1], arr[j]] = [arr[j], arr[j + 1]];      
             }    
         }
    if (!isFlag) return arr;  
    
 }  
    return arr;
}

快速排序算法实现

function quickSort(arr) {  
    if (arr === null || !arr.length) return arr;  
    let left = [], right = [];  
    const start = arr.splice(0, 1)[0];  
    for (let i = 0; i < arr.length; i++) {   
        if (arr[i] < start) {      
            left.push(arr[i]);    
        } else { right.push(arr[i]);} 
    }  
    return [...quickSort(left), start, ...quickSort(right)];}
let arr = [1, 3, 2, 0, 7, 6, 9, 10, 1, 0];console.log(maopao(arr));

image.png

let arr1 = [6, 5, 5, 3, 2, 1];console.log(quickSort(arr1));

image.png