Answered You can buy a ready-made answer or pick a professional tutor to order an original one.

QUESTION

The language used is Java /** * * Merging k sorted arrays into a single sorted array. * Your algorithm must be stable. * * You are NOT allowed to call the constructor of class Student, except i

The language used is Java /**  *   * Merging k sorted arrays into a single sorted array.  * Your algorithm must be stable.  *   * You are NOT allowed to call the constructor of class Student, except in <em>main</em>.  */ public class StableMerger {     /**      *       * No modification to class Student is allowed.      * If you change anything

This question hasn't been solved yet

The language used is Java/** * * Merging k sorted arrays into a single sorted array. * Your algorithm must be stable. * * You are NOT allowed to call the constructor of class Student, except in <em>main</em>. */public class StableMerger {    /**     *     * No modification to class Student is allowed.     * If you change anything here, your work will not be graded.     *     */    static class Student {        String name;        double grade;        public Student(String n, double g) {            name = n; grade = g;        }        public String toString() {            return "(" + name + ", " + grade + ")";        }    } 

    /**     * Running time: O(   ). (n is the total number of students.)        */    public static Student[] merge(Student[][] a) {        return null;    } 

    public static void main(String[] args) {        String[][] names = {{"Gloria Tang", "Andy Lau", "McDull"},                {"Eason Chan", "Denise Ho", "Jennifer Chan", "Joey Yung", "Kay Tse", "Jacky Cheung", "Anita Mui"},                {"Winnie", "Mickey", "Teddy", "Peppa"}};        double[][] grades = {{60, 60, 60}, {40, 60, 70, 80, 90, 95, 100}, {0, 90, 95, 100}};        Student[][] a = new Student[names.length][];        for (int i = 0; i < names.length; i++) {            a[i] = new Student[names[i].length];            for (int j = 0; j < names[i].length; j++)                  a[i][j]= new Student(names[i][j], grades[i][j]);        }        System.out.println(Arrays.toString(merge(a)));    }}

Show more
ANSWER

java code

import java.util.Arrays;

import java.util.ArrayList;

import java.util.Map;

import java.util.*;

import java.util.stream.Collectors;

public class StableMerger {

static class Student {

String name;

double grade;

public Student(String n, double g) {

name = n; grade = g;

}

public String toString() {

return "(" + name + ", " + grade + ")";

}

}

public static Student[] merge(Student[][] a) {

 LinkedHashMap<String, Double> myMap = new LinkedHashMap<String, Double>();

for (int i = 0; i < a.length; i++)

for (int j = 0; j < a[i].length; j++)

 myMap.put(a[i][j].name , a[i][j].grade);

LinkedHashMap<String, Double> sortedMap = new LinkedHashMap<>();

myMap.entrySet()

    .stream()

    .sorted(Map.Entry.comparingByValue())

    .forEachOrdered(x -> sortedMap.put((String)x.getKey(), (Double)x.getValue()));

Student[] merge = new Student[sortedMap.size()];

int x = 0;

for (Map.Entry<String, Double> entry : sortedMap.entrySet()) {

    merge[x] = new Student((String)entry.getKey() , Double.valueOf(entry.getValue().toString()) );

    x++;

}

  return  merge;

}

public static void main(String[] args) {

String[][] names = {{"Gloria Tang", "Andy Lau", "McDull"},

                {"Eason Chan", "Denise Ho", "Jennifer Chan", "Joey Yung", "Kay Tse", "Jacky Cheung", "Anita Mui"},

                {"Winnie", "Mickey", "Teddy", "Peppa"}};

        double[][] grades = {{60, 60, 60}, {40, 60, 70, 80, 90, 95, 100}, {0, 90, 95, 100}};

        Student[][] a = new Student[names.length][];

        for (int i = 0; i < names.length; i++) {

            a[i] = new Student[names[i].length];

            for (int j = 0; j < names[i].length; j++)

                a[i][j]= new Student(names[i][j], grades[i][j]);

        }

        System.out.println(Arrays.toString(merge(a)));

    }// main

}// class

LEARN MORE EFFECTIVELY AND GET BETTER GRADES!
Ask a Question