7.11 LAB: Sorting user IDs
Given a main() that reads user IDs (until -1), complete the quicksort() and partition() methods to sort the IDs in ascending order using the Quicksort algorithm, and output the sorted IDs one per line.
Ex. If the input is:
kaylasimms julia myron1994 kaylajones -1
the output is:
julia kaylajones kaylasimms myron1994
Code:
import java.util.Scanner;
import java.util.ArrayList;
public class UserIDSorting {
// TODO: Write the partitioning algorithm - pick the middle element
as the
// pivot, compare the values using two index variables l and h (low
and high),
// initialized to the left and right sides of the current elements
being sorted,
// and determine if a swap is necessary
public static int partition(ArrayList<String> userIDs, int i,
int k) {
}
// TODO: Write the quicksort algorithm that recursively sorts
the low and
// high partitions
public static void quicksort(ArrayList<String> userIDs, int
i, int k) {
}
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
ArrayList<String> userIDList = new ArrayList<String>();
String userID;
userID = scnr.next();
while (!userID.equals("-1")) {
userIDList.add(userID);
userID = scnr.next();
}
// Initial call to quicksort
quicksort(userIDList, 0, userIDList.size() - 1);
for (int i = 0; i < userIDList.size(); ++i) {
System.out.println(userIDList.get(i));
}
}
}
import java.util.Scanner;
import java.util.ArrayList;
public class UserIDSorting {
// TODO: Write the partitioning algorithm - pick the
middle element as the
// pivot, compare the values using two index variables
l and h (low and high),
// initialized to the left and right sides of the
current elements being sorted,
// and determine if a swap is necessary
public static int partition(ArrayList<String>
userIDs, int i, int k) {
String piv = userIDs.get(k);
int index = (i - 1);
for (int j = i; j < k; j++)
{
if
(userIDs.get(j).compareTo(piv) <= 0) {
index++;
String temp = userIDs.get(index);
userIDs.set(index, userIDs.get(j));
userIDs.set(j, temp);
}
}
String temp =
userIDs.get(index+1);
userIDs.set(index+1,
userIDs.get(k));
userIDs.set(k, temp);
return index + 1;
}
// TODO: Write the quicksort algorithm that
recursively sorts the low and
// high partitions
public static void quicksort(ArrayList<String>
userIDs, int i, int k) {
if (i < k) {
int pi = partition(userIDs, i, k);
quicksort(userIDs, i, pi - 1);
quicksort(userIDs, pi + 1, k);
}
}
public static void main(String[] args) {
Scanner scnr = new
Scanner(System.in);
ArrayList<String> userIDList = new ArrayList<String>();
String userID;
userID = scnr.next();
while (!userID.equals("-1"))
{
userIDList.add(userID);
userID =
scnr.next();
}
// Initial call to
quicksort
quicksort(userIDList, 0,
userIDList.size() - 1);
for (int i = 0; i <
userIDList.size(); ++i) {
System.out.println(userIDList.get(i));
}
}
}
===========================================================
SEE OUTPUT
Thanks, PLEASE UPVOTE if there is any concern.
7.11 LAB: Sorting user IDs Given a main() that reads user IDs (until -1), complete the...
Sorting algorithm: quick sort Exercise One (20 marks) Given the following program body for implementing Quick sort, complete the program by writing code where required import java.util.Random; public class QuickSort public void quickSectlinti] A) QuickSort/A, O, A.length-1); private void guickSortlin Aiat low.int high) //Complete the code for the quicksort method (5 marks] private void swaplint[] a, int indexl, int index2) //Complete the code for the swap method [3 marks] private int setPivotlint low, int high) Random rand = new Random();...
import java.util.Arrays; public class lab { public static void main(String args[]) { int arr[] = {10, 7, 8, 9, 1, 5,6,7}; int arr2[] = {9, 8, 7, 6, 5, 4, 3, 2, 1}; int arr3[] = {1, 3, 5, 3, 2, 6, 20}; quicksort(arr,0,arr.length-1); quicksort(arr2,0,arr2.length-1); quicksort(arr3,0,arr3.length-1); System.out.println(Arrays.toString(arr)); System.out.println(Arrays.toString(arr2)); System.out.println(Arrays.toString(arr3)); } private static int partition(int[] items,int low, int high) { int i=0; int j=0;...
13.5 LAB: Zip code and population (generic types)Define a class StatePair with two generic types (Type1 and Type2), a constructor, mutators, accessors, and a printInfo() method. Three ArrayLists have been pre-filled with StatePair data in main():ArrayList<StatePair> zipCodeState: Contains ZIP code/state abbreviation pairsArrayList<StatePair> abbrevState: Contains state abbreviation/state name pairsArrayList<StatePair> statePopulation: Contains state name/population pairsComplete main() to use an input ZIP code to retrieve the correct state abbreviation from the ArrayList zipCodeState. Then use the state abbreviation to retrieve the state name from the ArrayList abbrevState. Lastly,...
10.16 LAB: Plant information (ArrayList)Given a base Plant class and a derived Flower class, complete main() to create an ArrayList called myGarden. The ArrayList should be able to store objects that belong to the Plant class or the Flower class. Create a method called printArrayList(), that uses the printInfo() methods defined in the respective classes and prints each element in myGarden. The program should read plants or flowers from input (ending with -1), adding each Plant or Flower to the myGarden ArrayList, and output each element in myGarden using the printInfo() method.Ex. If the input is:plant Spirea 10 flower Hydrangea 30 false lilac flower Rose 6 false white plant Mint 4...
Complete the do-while loop to output 0 to countLimit. Assume the user will only input a positive number. import java.util.Scanner; public class CountToLimit { public static void main (String [] args) { Scanner scnr = new Scanner(System.in); int countLimit = 0; int printVal = 0; // Get user input countLimit = scnr.nextInt(); printVal = 0; do { System.out.print(printVal + " "); printVal = printVal + 1; } while ( /* Your solution goes here */ ); System.out.println(""); return; } }
CHALLENGE ACTIVITY 3.11.1: Using boolean. D Assign is Teenager with true if kidAge is 13 to 19 inclusive. Otherwise, assign is Teenager with false. 1 import java.util.Scanner; 3 public class TeenagerDetector 1 public static void main (String [] args) { Scanner scnr = new Scanner(System.in); boolean isTeenager; int kidAge; D}]oll kidage = scnr.nextInt(); /* Your solution goes here */ Go USB if (isTeenager) { System.out.println("Teen"); else { System.out.println("Not teen"); 20 Run Feedback? CHALLENGE ACTIVITY 3.11.2: Boolean in branching statements. Write...
import java.util.Scanner; public class Lab6d { public static void main(String[] args) { Scanner scnr = new Scanner(System.in); // TODO: get user choice // TODO: call printTable method passing choice as the parameter } public static void printTable(int stop) { // TODO: print header // TODO: loop to print table rows up to stop value } Write a Java program where the main () method prompts the user to select an integer value between 1 and...
Answer in JAVA 1. Complete the method definition to output the hours given minutes. Output for sample program: 3.5 import java.util.Scanner; public class HourToMinConv { public static void outputMinutesAsHours(double origMinutes) { /* Your solution goes here */ } public static void main (String [] args) { Scanner scnr = new Scanner(System.in); double minutes; minutes = scnr.nextDouble(); outputMinutesAsHours(minutes); // Will be run with 210.0, 3600.0, and 0.0. System.out.println(""); } } 2....
"Simon Says" is a memory game where "Simon" outputs a sequence of 10 characters (R, G, B, Y) and the user must repeat the sequence. Create a for loop that compares the two strings starting from index 0. For each match, add one point to userScore. Upon a mismatch, exit the loop using a break statement. Assume simonPattern and userPattern are always the same length. Ex: The following patterns yield a userScore of 4: simonPattern: RRGBRYYBGY userPattern: RRGBBRYBGY import java.util.Scanner;...
CHALLENGE ACTIVITY 7.16.1: Enter the output of the ArrayList ADT functions. Jump to level 1 Type the program's output import java.util.ArrayList; import java.util.Scanner; public class IntegerManager ( public static void printSize(ArrayList<Integer> numsList) System.out.println(numsList.size() + "items"); public static void main(String[] args) Scanner scnr = new Scanner(System.in); int currval; ArrayList<Integer> intList = new ArrayList<Integer>(); Input 123-1 printSize (intList); Output currval = scnr.nextInt(); while (currval >= 0) { intList.add(currval); currval = scnr.nextInt(); printSize (intList); intList.clear(); printSize (intList); 1 2 Check Next