Java this is my current code i need help to implement public

Java

this is my current code i need help to implement public void sort method (TODO part)

import java.util.List;
import java.util.ArrayList;
import java.util.Collections;

class MergeSort {
  

   public static void sort(List<Integer> list) {
      
//TODO call the method private static void sort with parameters(length of input list, 0,0);
   }
  
   private static void sort(List<Integer> list, int startIndex, int endIndex){
      
       int length = endIndex - startIndex;
       if(length <= 1) {
           return;
       }
      
       int middleIndex = startIndex + (length/2);
      
       sort(list,startIndex,middleIndex);
       sort(list,middleIndex,endIndex);
      
       int upperStart = startIndex;
       int upperEnd = startIndex + (length/2);
       int lowerStart = upperEnd;
       int lowerEnd = endIndex;
      
       int i = upperStart;
       int j = lowerStart;
       List<Integer> tmpList = new ArrayList<Integer>();
       while ( i < upperEnd || j < lowerEnd){
           if(i >= upperEnd){
               tmpList.add(list.get(j));
               j++;
           }
           else if(j >= lowerEnd) {
               tmpList.add(list.get(i));
               i++;
           }
           else{
               if(list.get(i) < list.get(j)){
                   tmpList.add(list.get(i));
                   i++;
               }
               else{
                   tmpList.add(list.get(j));
                   j++;
               }
           }
          
           for(int k = startIndex; k < endIndex; k++){
               list.set(k,tmpList.get(k - startIndex));
           }
          
       }
      
   }
      
}

Solution

import java.util.List;
import java.util.ArrayList;
import java.util.Collections;

class MergeSort {
  

    public static void sort(List<Integer> list) {
     
       //call the method private static void sort with parameters(length of input list, 0,0);
       sort(list.size(), 0,0);
    }
  
    private static void sort(List<Integer> list, int startIndex, int endIndex){
      
        int length = endIndex - startIndex;
        if(length <= 1) {
            return;
        }
      
        int middleIndex = startIndex + (length/2);
      
        sort(list,startIndex,middleIndex);
        sort(list,middleIndex,endIndex);
      
        int upperStart = startIndex;
        int upperEnd = startIndex + (length/2);
        int lowerStart = upperEnd;
        int lowerEnd = endIndex;
      
        int i = upperStart;
        int j = lowerStart;
        List<Integer> tmpList = new ArrayList<Integer>();
        while ( i < upperEnd || j < lowerEnd){
            if(i >= upperEnd){
                tmpList.add(list.get(j));
                j++;
            }
            else if(j >= lowerEnd) {
                tmpList.add(list.get(i));
                i++;
            }
            else{
                if(list.get(i) < list.get(j)){
                    tmpList.add(list.get(i));
                    i++;
                }
                else{
                    tmpList.add(list.get(j));
                    j++;
                }
            }
          
            for(int k = startIndex; k < endIndex; k++){
                list.set(k,tmpList.get(k - startIndex));
            }
          
        }
      
    }
      
}

Java this is my current code i need help to implement public void sort method (TODO part) import java.util.List; import java.util.ArrayList; import java.util.Co
Java this is my current code i need help to implement public void sort method (TODO part) import java.util.List; import java.util.ArrayList; import java.util.Co
Java this is my current code i need help to implement public void sort method (TODO part) import java.util.List; import java.util.ArrayList; import java.util.Co

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site