How implement merge sort algorithm in TypeScript

1 Answer

0 votes
function merge(left : number[], right : number[]) : number[] {
    let arr = [] as any;
 
    while (left.length && right.length) {
        if (left[0] < right [0]) {
            arr.push(left.shift())
        } else {
            arr.push(right.shift())
        }
    }
 
    return [...arr,...left,...right];
}
 
function mergeSort(arr : number[], halflength = arr.length / 2) : number[] {
    if (arr.length < 2) {
        return arr
    }
 
    const left = arr.splice(0, halflength); 
 
    return merge(mergeSort(left), mergeSort(arr))
}
 
let arr = [10, 8, 5, 4, 3, 6, 2, 7, 1, 9];
 
console.log(mergeSort(arr));
 
 
   
     
     
/*
run:
     
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
     
*/

 



answered Jan 17, 2022 by avibootz

Related questions

1 answer 226 views
1 answer 160 views
1 answer 170 views
2 answers 236 views
1 answer 98 views
1 answer 119 views
...