Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package student;
- import java.util.Scanner;
- public class Student {
- public String firstName, lastName, id, middleName;
- public Student(String firstName, String middleName, String lastName, String id) {
- this.firstName = firstName;
- this.middleName = middleName;
- this.lastName = lastName;
- this.id = id;
- }
- public String toString() {
- return (firstName + " " + (middleName == null ? "" : middleName) + " " + lastName + " : " + id );
- }
- public static class StudentQuickSorter {
- public static void PrintRecords(Student[] students){
- for (int i = 0; i < students.length; i++) {
- System.out.println(students[i]);
- }
- }
- public static void sort(Student[] a) {
- sort(a, 0, a.length-1);
- }
- private static void sort(Student[] a, int lo, int hi) {
- if(lo >= hi) return;
- int pi = partition(a, lo, hi);
- sort(a, lo, pi-1);
- sort(a, pi+1, hi);
- }
- private static int partition(Student[] a, int lo, int hi) {
- int i = lo + 1;
- int j = hi;
- while(i <= j) {
- if(a[i].compareTo(a[lo]) <= 0) {
- i++;
- }
- else if(a[j].compareTo(a[lo]) > 0) {
- j--;
- }
- else if(j < i) {
- break;
- }
- else
- exchange(a, i, j);
- }
- exchange(a, lo, j);
- return j;
- }
- private static void exchange(Student[] a, int i, int j) {
- Student tmp = a[i];
- a[i] = a[j];
- a[j] = tmp;
- }
- }
- public static class StudentBubbleSortDriver{
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- System.out.println("Enter how many students you'd like to enter in the system:");
- String countStr = scanner.nextLine();
- int count = Integer.parseInt(countStr);
- Student[] studentArr = new Student[count];
- for(int i = 0; i < studentArr.length; i++) {
- boolean notvalid = true;
- do{
- System.out.println();
- System.out.println("Enter Student #" + (i + 1));
- System.out.println("EX: First Name, Last Name, StudentID, and Middle Name(optional) separated by commas...");
- String rawData = scanner.nextLine();
- String[] dataArray = rawData.split(",");
- //trim any extra spaces
- for(int j = 0; j < dataArray.length; j++) {
- dataArray[j] = dataArray[j].trim();
- }
- notvalid = dataArray.length < 3;
- if (notvalid)
- {
- System.out.println("Invalid Input!");
- continue;
- }
- String middleName = dataArray.length > 3 ? dataArray[3] : null;
- studentArr[i] = new Student(dataArray[0], middleName, dataArray[1], dataArray[2]);
- }while(notvalid);
- }
- System.out.println();
- System.out.println("Unsorted Records:");
- StudentQuickSorter.PrintRecords(studentArr);
- StudentQuickSorter.sort(studentArr);
- System.out.println();
- System.out.println("Sorted Records:");
- StudentQuickSorter.PrintRecords(studentArr);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement