In Java Create an array of names Display the names in UNSORT
In Java Create an array of names. Display the names in UNSORTED order. Apply the
Mergesort and Display the names in SORTED order.
public class TestMerge {
public static void main (String [ ] args ) {
/*
***Create your array of Strings with AT LEAST 5 names
*/
System.out.println ( \" ____________________________\");
/*
***LOOP through your array and print out each UNSORTED string
*/
System.out.println ( \" ____________________________\");
Merge.sort (words);
/*
***LOOP through your array and print out each SORTED string
*/
System.out.println ( \" ____________________________\");
}
}
Output:
----------------------------
Bill
Ham
Newton
Eric
Campable
----------------------------
Bill
Campable
Eric
Ham
Newton
---------------------------
Solution
// TestMerge.java
import java.util.*;
public class TestMerge
{
public static void mergeSort(String[] names) {
if (names.length >= 2)
{
String[] l = new String[names.length / 2];
String[] r = new String[names.length - names.length / 2];
for (int i = 0; i < l.length; i++) {
l[i] = names[i];
}
for (int i = 0; i < r.length; i++) {
r[i] = names[i + names.length / 2];
}
mergeSort(l);
mergeSort(r);
merge(names, l, r);
}
}
public static void merge(String[] names, String[] l, String[] r)
{
int index1 = 0;
int index2 = 0;
for (int i = 0; i < names.length; i++)
{
if (index2 >= r.length || (index1 < l.length && l[index1].compareToIgnoreCase(r[index2]) < 0))
{
names[i] = l[index1];
index1++;
}
else
{
names[i] = r[index2];
index2++;
}
}
}
public static void main(String[] args)
{
//Create array of Strings with AT LEAST 5 names
String[] names = { \"Bill\", \"Ham\", \"Newton\", \"Eric\", \"Campable\"};
System.out.println(\"\ Unsorted string:\");
for (String name : names)
{
System.out.println(name);
}
// sorting the array of string
mergeSort(names);
System.out.println(\"\ Sorted string:\");
for (String name : names)
{
System.out.println(name);
}
}
}
/*
output:
Unsorted string:
Bill
Ham
Newton
Eric
Campable
Sorted string:
Bill
Campable
Eric
Ham
Newton
*/

