Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function MergeSort(arr){
- if(arr.length <= 1){
- return arr;
- }
- helper(arr, 0, arr.length-1)
- return arr;
- }
- function helper(A, start, end){
- //Based Case for Leaf Node
- if(start == end){
- return;
- }
- //Case for Internal node worker
- let mid = Math.floor((start + end) / 2);
- //console.log(start, end, mid);
- helper(A, start, mid);
- helper(A, mid + 1, end);
- //merge two sorted half arrays
- let i = start;
- let j = mid + 1;
- let auxArray = new Array();
- while((i <= mid) && (j <= end)){
- // console.log(A[i], A[j]);
- if(A[i] <= A[j]){
- auxArray.push(A[i]);
- i++;
- }else if(A[i] > A[j]) {
- auxArray.push(A[j]);
- j++
- }
- }
- //Append remaining items
- while(i <= mid){
- auxArray.push(A[i]);
- i++
- }
- while(j <= end){
- auxArray.push(A[j]);
- j++;
- }
- for(let k = 0; k < auxArray.length; k++){
- A[start+k] = auxArray[k];
- }
- return;
- }
- let number = [1,3,7,4]
- console.log(MergeSort(number))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement