Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void main(String[] args) {
- Grade guilherme = new Grade("guilherme", 7);
- Grade[] grades = {
- new Grade("Andre", 4),
- new Grade("Carlos", 8.5),
- new Grade("Ana", 10),
- new Grade("Jonas", 3),
- new Grade("Juliana", 6.7),
- new Grade("Lucia", 9.3),
- new Grade("Paulo", 9),
- new Grade("Mariana", 5),
- guilherme
- };
- sortByQuickSort(grades, 0, grades.length);
- for (Grade grade : grades) {
- System.out.println(grade.getStudent() + " grade: " + grade.getValue());
- }
- }
- private static void sortByQuickSort(Grade[] grades, int start, int end) {
- int elements = end - start;
- if (elements > 1) {
- int pivot = split(grades, start, end);
- sortByQuickSort(grades, start, pivot);
- sortByQuickSort(grades, pivot +1, end);
- }
- }
- private static int split(Grade[] grades, int start, int end) {
- Grade pivot = grades[end -1];
- int lesserThanPivot = 0;
- for (int checking = 0; checking < end -1; checking++) {
- Grade checkingGrade = grades[checking];
- if (checkingGrade.getValue() <= pivot.getValue()) {
- change(grades, checking, lesserThanPivot);
- lesserThanPivot++;
- }
- }
- change(grades, end -1, lesserThanPivot);
- return lesserThanPivot;
- }
- private static void change(Grade[] grades, int index1, int index2) {
- Grade grade1 = grades[index1];
- Grade grade2 = grades[index2];
- grades[index1] = grade2;
- grades[index2] = grade1;
- }
Add Comment
Please, Sign In to add comment