How to Sort and Merge Multiple Queues in Java

Java Assignment Details

java assignmentTo sort and merge multiple queues, where the input queues were to be read from a file.

How to Solve Such Problems in Java

Sort and Merge Multiple QueuesIt is worth to keep in mind the requirements before we start searching Java assignment solution. All the time we have to do what is provided to us. First of all, we need to identify which way to use in a specific condition is better. After that, we start creating a pseudo code which has the overall map of entire program. It is obvious to consider about the loopholes that can destroy the process of solving the problem. So, before begin to work on implementing actual Java code we should cover up all of them. It will provide us with better results at the end.

Java Assignment Solution from Experts

  • Read a filename from a user.
  • Read the file line wise.
  • Process the file and store the available queues as an unsorted queue in a list.
  • Process each queue and sort them.
  • Store the sorted queue in a new array of lists.
  • Merge the sorted queues & display the final result.
sort and merge multiple queues easy

image credit: blog.teamtreehouse.com

Expert’s Approach

We need to read a file and store the queues, used the realist method() from FileLine class (modified to return the processed output queues). And then to sort the queue used an algorithm:

while not unsortedqueue.isEmpty() do
                           smallest = unsortedqueue.dequeue() ;
                      queuelength = unsortedqueue.length() ;
                      For i = 1 to queuelength do
                                         element = unsortedqueue.dequeue() ;
                                         if smallest > element then
                                                        unsortedqueue.enqueue(smallest) ;
                                                    smallest = element ;
                                        else
                                                        unsortedqueue.enqueue(element) ;
                                         endif
                          endfor
                           sortedqueue.enqueue(smallest) ;
          endwhile
          The output was a List of sorted queues

Processing this output list and merging them into one sorted output list using the following algorithm:

totalelements = 0
for each linkedqueue in sortedqueue do
totalelements += linkedqueue.size()
end for
while result.size()<totalelements do
lowestqueue=null, i=0
for each linkedqueue in sortedqueue do
if  linkedqueue is not empty then
if lowestqueue == null then
lowestqueue = linkedqueue;
else if linkedqueue.first() <= lowestqueue.first() then
lowestqueue = linkedqueue;
end if
end if
end for
result.enqueue(lowestqueue.first());
lowestqueue.dequeue();
endwhile

Display the output.

Still wondering a working Java code that would sort and merge multiple queues? Let our experts help you today!