In Java: The program should prompt the user to input a group of characters (a st
ID: 3924761 • Letter: I
Question
In Java:
The program should prompt the user to input a group of characters (a string). The chars will refer to people’s names and will be entered as one word names for each group waiting. There will be exactly 4 names that need to be entered into the list. The longest name will be less than 30 characters long.
Sort the names into alphabetical order.
After all of the names have been entered, the program should prompt the user to input a name. After the name has been entered, the program should conduct a search of the list looking for the name. The search needs to be repeated till the user inputs “over”. The search can be a linear search (the list is very short) or a binary search.
Explanation / Answer
// SortSearch.java
import java.util.*;
public class SortSearch
{
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)
{
Scanner scanner = new Scanner( System.in );
//Create array of Strings with AT LEAST 5 names
String[] names = new String[4];
for (int i = 0; i < 4; i++ )
{
System.out.print( "Enter name: " );
String input = scanner.nextLine();
names[i] = input;
}
System.out.println(" Unsorted list:");
for (String name : names)
{
System.out.println(name);
}
// sorting the list of names
mergeSort(names);
System.out.println(" Sorted list:");
for (String name : names)
{
System.out.println(name);
}
System.out.println(" ");
while(true)
{
System.out.println("Input a name to search: ");
String input = scanner.nextLine();
int flag = 1;
if (input.equals("over"))
{
System.out.println("Good Bye! ");
break;
}
for (String name : names)
{
if(name.equals(input))
{
System.out.println("Name present in list ");
flag = 0;
}
}
if(flag == 1)
System.out.println("Name not present in list ");
}
}
}
/*
output:
Enter name: jason
Enter name: roy
Enter name: alex
Enter name: hales
Unsorted list:
jason
roy
alex
hales
Sorted list:
alex
hales
jason
roy
Input a name to search:
roy
Name present in list
Input a name to search:
ayush
Name not present in list
Input a name to search:
hales
Name present in list
Input a name to search:
over
Good Bye!
*/
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.