Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const merge = <T>(leftArray: T[], rightArray: T[]): T[] => {
- const mergedArray: T[] = [];
- let i: number = 0, j: number = 0;
- while (i < leftArray.length && j < rightArray.length) {
- if (leftArray[i] < rightArray[j])
- mergedArray.push(leftArray[i++]);
- else
- mergedArray.push(rightArray[j++]);
- }
- return [...mergedArray, ...leftArray.slice(i), ...rightArray.slice(j)];
- };
- const mergeSort = <T>(array: T[]): T[] => {
- if (array.length < 2)
- return array;
- const middle = ~~(array.length / 2);
- const leftArray = array.slice(0, middle);
- const rightArray = array.slice(middle);
- return merge(
- mergeSort(leftArray),
- mergeSort(rightArray)
- );
- };
- export default mergeSort;
Advertisement
Add Comment
Please, Sign In to add comment