Proceso de ordenamiento en subarreglo: 0 a 15 10 Proceso de ordenamiento en subarreglo: 2 a 38 9 Proceso de ordenamiento en subarreglo: 0 a 35 8 9 10 Proceso de ordenamiento en subarreglo: 4 a 52 3 Proceso de ordenamiento en subarreglo: 6 a 71 6 Proceso de ordenamiento en subarreglo: 4 a 71 2 3 6 Proceso de ordenamiento en subarreglo: 0 a 71 2 3 5 6 8 9 10
The output shows the progressive merging of subarrays, demonstrating how merge sort combines sorted sections bottom-up.
Random numAzar = new Random();int cantidadElementos = numAzar.nextInt(10) + 1; // Generate 1 to 10 elementsint[] arreglo = new int[cantidadElementos];for (int i = 0; i < cantidadElementos; i++) { arreglo[i] = numAzar.nextInt(100) + 1; // Numbers from 1 to 100}// Show original arraySystem.out.println("Arreglo original:");for (int num : arreglo) { System.out.print(num + " ");}System.out.println();// Sort the arraymergeSort(arreglo);// Show sorted arraySystem.out.println("Arreglo ordenado:");for (int num : arreglo) { System.out.print(num + " ");}
Sample Output:
Arreglo original:67 23 89 12 45 78 34 Proceso de ordenamiento en subarreglo: 0 a 123 67 Proceso de ordenamiento en subarreglo: 3 a 412 45 Proceso de ordenamiento en subarreglo: 2 a 412 45 89 Proceso de ordenamiento en subarreglo: 0 a 412 23 45 67 89 Proceso de ordenamiento en subarreglo: 5 a 634 78 Proceso de ordenamiento en subarreglo: 0 a 612 23 34 45 67 78 89 Arreglo ordenado:12 23 34 45 67 78 89
To use this version, uncomment lines 117-138 and comment out lines 108-115 in MergeSort.java.
Proceso de ordenamiento en subarreglo: 0 a 12 5 Proceso de ordenamiento en subarreglo: 3 a 41 9 Proceso de ordenamiento en subarreglo: 2 a 41 8 9 Proceso de ordenamiento en subarreglo: 0 a 41 2 5 8 9 [1, 2, 5, 8, 9]
Proceso de ordenamiento en subarreglo: 0 a 11 2 Proceso de ordenamiento en subarreglo: 3 a 44 5 Proceso de ordenamiento en subarreglo: 2 a 43 4 5 Proceso de ordenamiento en subarreglo: 0 a 41 2 3 4 5 [1, 2, 3, 4, 5]
Even though the array is already sorted, merge sort still performs all division and merge operations. This is why its time complexity is always O(n log n).
Proceso de ordenamiento en subarreglo: 0 a 17 9 Proceso de ordenamiento en subarreglo: 3 a 41 3 Proceso de ordenamiento en subarreglo: 2 a 41 3 5 Proceso de ordenamiento en subarreglo: 0 a 41 3 5 7 9 [1, 3, 5, 7, 9]
Proceso de ordenamiento en subarreglo: 0 a 12 5 Proceso de ordenamiento en subarreglo: 2 a 32 8 Proceso de ordenamiento en subarreglo: 0 a 32 2 5 8 Proceso de ordenamiento en subarreglo: 4 a 51 9 Proceso de ordenamiento en subarreglo: 6 a 75 5 Proceso de ordenamiento en subarreglo: 4 a 71 5 5 9 Proceso de ordenamiento en subarreglo: 0 a 71 2 2 5 5 5 8 9 [1, 2, 2, 5, 5, 5, 8, 9]
Merge sort is stable, meaning equal elements maintain their relative order from the input.
Proceso de ordenamiento en subarreglo: 0 a 1-5 10 Proceso de ordenamiento en subarreglo: 3 a 40 8 Proceso de ordenamiento en subarreglo: 2 a 4-3 0 8 Proceso de ordenamiento en subarreglo: 0 a 4-5 -3 0 8 10 Proceso de ordenamiento en subarreglo: 5 a 6-1 15 Proceso de ordenamiento en subarreglo: 0 a 6-5 -3 -1 0 8 10 15 [-5, -3, -1, 0, 8, 10, 15]
public class StudentGradeProcessor { private int[] grades; public StudentGradeProcessor(int[] grades) { this.grades = grades; } public void analyzeGrades() { // Sort grades using MergeSort MergeSort.mergeSort(grades); // Calculate statistics System.out.println("Lowest grade: " + grades[0]); System.out.println("Highest grade: " + grades[grades.length - 1]); double median; if (grades.length % 2 == 0) { median = (grades[grades.length/2 - 1] + grades[grades.length/2]) / 2.0; } else { median = grades[grades.length/2]; } System.out.println("Median grade: " + median); double average = 0; for (int grade : grades) { average += grade; } average /= grades.length; System.out.println("Average grade: " + average); } public static void main(String[] args) { int[] testGrades = {85, 92, 78, 95, 88, 76, 90, 82}; StudentGradeProcessor processor = new StudentGradeProcessor(testGrades); processor.analyzeGrades(); }}
Output:
Proceso de ordenamiento en subarreglo: 0 a 185 92 Proceso de ordenamiento en subarreglo: 2 a 378 95 Proceso de ordenamiento en subarreglo: 0 a 378 85 92 95 Proceso de ordenamiento en subarreglo: 4 a 576 88 Proceso de ordenamiento en subarreglo: 6 a 782 90 Proceso de ordenamiento en subarreglo: 4 a 776 82 88 90 Proceso de ordenamiento en subarreglo: 0 a 776 78 82 85 88 90 92 95 Lowest grade: 76Highest grade: 95Median grade: 86.5Average grade: 85.75