Quick actions

cmd+k|ctrl+k

Navigation

Languages

Merge Sort

Snippet info

Language

JavaScript

Visibility

public

Author

anikeshdey2020

Created

2023-03-04T08:07:15.445538Z

Updated

2023-03-04T08:13:22.676496Z

function sort(arr){
	if(arr.length < 2){
		return arr;
	}

	let length = arr.length;
	let halfNumber = Math.floor(length / 2);
	let left = arr.slice(0, halfNumber);
	let right = arr.slice(halfNumber);

	return merge(sort(left), sort(right))
	
}

function merge(left, right){
	let result = [];
	let i = 0;
	let j = 0;

	while(left[i] !== undefined || right[j] !== undefined){
		if(right[j] == undefined || right[j] > left[i]){
			result.push(left[i]);
			i++;
		} else {
			result.push(right[j]);
			j++;
		}
	}

	return result;
}


sort([2,6, 78, 86,34,56, 15, 90, 9, 25, 0, 64])
/*

[4,1,3,2] --> [4, 1] [3, 2] --> [4] [1]  [3] [2]

sort([4,1,3,2]) --> merge(sort([4, 1]), sort([3, 2])) --> merge(merge(sort([4]), sort([1])),merge(sort([3]), sort([2])))

merge(merge([4], [1]), merge([3], [2])) --> merge([1, 4], [2, 3]) --> [1, 2, 3, 4]

*/


INFO