Програма Java для впровадження алгоритму сортування злиття

У цьому прикладі ми навчимось виконувати алгоритм сортування злиття в Java.

Щоб зрозуміти цей приклад, ви повинні знати такі теми програмування Java:

  • Методи Java
  • Java в той час як і робити … в той час як Loop
  • Масиви Java

Приклад: Програма Java для реалізації алгоритму сортування злиття

 import java.util.Arrays; // Merge sort in Java class Main ( // Merge two sub arrays L and M into array void merge(int array(), int p, int q, int r) ( int n1 = q - p + 1; int n2 = r - q; int L() = new int(n1); int M() = new int(n2); // fill the left and right array for (int i = 0; i < n1; i++) L(i) = array(p + i); for (int j = 0; j  = <(j)) while (i < n1 && j < n2) ( if (L(i) <= M(j)) ( array(k) = L(i); i++; ) else ( array(k) = M(j); j++; ) k++; ) // When we run out of elements in either L or M, // pick up the remaining elements and put in A(p… r) while (i < n1) ( array(k) = L(i); i++; k++; ) while (j < n2) ( array(k) = M(j); j++; k++; ) ) // Divide the array into two sub arrays, sort them and merge them void mergeSort(int array(), int left, int right) ( if (left < right) ( // m is the point where the array is divided into two sub arrays int mid = (left + right) / 2; // recursive call to each sub arrays mergeSort(array, left, mid); mergeSort(array, mid + 1, right); // Merge the sorted sub arrays merge(array, left, mid, right); ) ) public static void main(String args()) ( // created an unsorted array int() array = ( 6, 5, 12, 10, 9, 1 ); Main ob = new Main(); // call the method mergeSort() // pass argument: array, first index and last index ob.mergeSort(array, 0, array.length - 1); System.out.println("Sorted Array:"); System.out.println(Arrays.toString(array)); ) ) 

Вихід 1

 Несортований масив: (6, 5, 12, 10, 9, 1) Відсортований масив: (1, 5, 6, 9, 10, 12)

Тут елементи масиву сортуються за зростанням. Якщо ми хочемо відсортувати елементи за спаданням, то всередині першого whileциклу merge()методу ми можемо змінити код як:

 // the less than sign is changed to greater than if (L(i)>= M(j)) (

Якщо ви хочете дізнатися більше про алгоритм сортування злиття, відвідайте алгоритм сортування злиття.

Цікаві статті...