Advertisement
Guest User

Untitled

a guest
Jan 20th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.53 KB | None | 0 0
  1. package student;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class Student {
  6.     public String firstName, lastName, id, middleName;
  7.     public Student(String firstName, String middleName, String lastName, String id) {
  8.         this.firstName = firstName;
  9.         this.middleName = middleName;
  10.         this.lastName = lastName;
  11.         this.id = id;
  12.     }
  13.     public String toString() {
  14.         return (firstName + " " + (middleName == null ? "" : middleName) + " " + lastName + "  : " + id );
  15.     }
  16.  
  17.  
  18. public static class StudentQuickSorter {
  19.  
  20.         public static void PrintRecords(Student[] students){
  21.         for (int i = 0; i < students.length; i++) {
  22.             System.out.println(students[i]);
  23.         }
  24.         }
  25.         public static void sort(Student[] a) {
  26.             sort(a, 0, a.length-1);
  27.         }
  28.  
  29.         private static void sort(Student[] a, int lo, int hi) {
  30.             if(lo >= hi) return;
  31.             int pi = partition(a, lo, hi);
  32.             sort(a, lo, pi-1);
  33.             sort(a, pi+1, hi);
  34.         }
  35.  
  36.         private static int partition(Student[] a, int lo, int hi) {
  37.             int i = lo + 1;
  38.             int j = hi;
  39.  
  40.             while(i <= j) {
  41.                 if(a[i].compareTo(a[lo]) <= 0) {
  42.                     i++;
  43.                 }
  44.                 else if(a[j].compareTo(a[lo]) > 0) {
  45.                     j--;
  46.                 }
  47.                 else if(j < i) {
  48.                     break;
  49.                 }
  50.                 else
  51.                     exchange(a, i, j);
  52.             }
  53.             exchange(a, lo, j);
  54.             return j;
  55.         }
  56.  
  57.         private static void exchange(Student[] a, int i, int j) {
  58.             Student tmp = a[i];
  59.             a[i] = a[j];
  60.             a[j] = tmp;
  61.         }
  62. }
  63.    
  64. public static class StudentBubbleSortDriver{
  65.    
  66.    
  67.     public static void main(String[] args) {
  68.  
  69.         Scanner scanner = new Scanner(System.in);
  70.         System.out.println("Enter how many students you'd like to enter in the system:");
  71.         String countStr = scanner.nextLine();
  72.         int count = Integer.parseInt(countStr);
  73.         Student[] studentArr = new Student[count];
  74.        
  75.         for(int i = 0; i < studentArr.length; i++) {
  76.            
  77.             boolean notvalid = true;
  78.             do{
  79.                 System.out.println();
  80.                 System.out.println("Enter Student #" + (i + 1));
  81.                 System.out.println("EX: First Name, Last Name, StudentID, and Middle Name(optional) separated by commas...");
  82.                 String rawData = scanner.nextLine();
  83.                 String[] dataArray = rawData.split(",");
  84.  
  85.                 //trim any extra spaces
  86.                 for(int j = 0; j < dataArray.length; j++) {
  87.                     dataArray[j] = dataArray[j].trim();
  88.                 }
  89.                 notvalid = dataArray.length < 3;
  90.                 if (notvalid)
  91.                 {
  92.                     System.out.println("Invalid Input!");
  93.                     continue;
  94.                 }
  95.                 String middleName = dataArray.length > 3 ? dataArray[3] : null;
  96.                 studentArr[i] = new Student(dataArray[0], middleName, dataArray[1], dataArray[2]);
  97.             }while(notvalid);
  98.         }
  99.         System.out.println();
  100.         System.out.println("Unsorted Records:");
  101.         StudentQuickSorter.PrintRecords(studentArr);
  102.         StudentQuickSorter.sort(studentArr);
  103.         System.out.println();
  104.         System.out.println("Sorted Records:");
  105.         StudentQuickSorter.PrintRecords(studentArr);
  106.     }
  107. }
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement