private void sortedMerge(List<Integer> result,int start,int end,int sum[]){
        
        /**
         * If chunks are of equal size then
         * i = size*start to (mid+1)*size -1
         * j = (mid+1)*size to size*(end+1)
         */
        
        int mid = (start + end)/2; 
        int i = sum[start];
        int j = sum[mid+1];
        List<Integer> temp = new ArrayList<Integer>();
        while(i < sum[mid+1] && j < sum[end+1]){
            if(result.get(i) < result.get(j)){
                temp.add(result.get(i));
                i++;
            }else{
                temp.add(result.get(j));
                j++;
            }
        }
        while(i < sum[mid+1]){
            temp.add(result.get(i));
            i++;
        }
        while(j < sum[end+1]){
            temp.add(result.get(j));
            j++;
        }
        int index = sum[start];
        for(int k : temp){
            result.set(index, k);
            index++;
        }
    }
Given a list of lists. Each element in the list is sorted. Sort the 
entire list.
Test cases
One or more lists are empty
All elements in one list are smaller than all elements in another list
src/com/interview/array/ChunkMerge.java