Java знакомство и как пользоваться базовым API: Реализовать алгоритм сортировки слиянием(метод взять из Интернета)

Задача 1: Реализовать алгоритм сортировки слиянием(метод взять из Интернета)

Пример:

17, 1, 10, 1, 8, 9, 5, 1, 5, 18
Отсортированный массив:
1, 1, 1, 5, 5, 8, 9, 10, 17, 18

Решение:

public class Z1{
    public static void main(String[] args) {
        int[] array = new int[10];
        array = FillRandomArray(10);
        for(int element: array) {
            System.out.printf(«%d, «, element);
        }
        mergeSort(array, 10);
        System.out.println();
        System.out.println(«Отсортированный массив: «);
        for(int element: array) {
            System.out.printf(«%d, «, element);
        }
    }
    public static int[] FillRandomArray(int n) {
            int [] arr = new int[n];
            for(int i = 0; i < n; i++){
             arr[i] = ((int)(Math.random()*20));
            }
            return arr;
        }
    public static void mergeSort(int [] arr, int n){
        if (n<2) return;
        int mid = n/2;
        int [] leftArr = new int[mid];
        int [] rightArr = new int[n-mid];
        System.arraycopy(arr, 0, leftArr, 0, mid);
        System.arraycopy(arr, mid, rightArr, 0, n — mid);
        mergeSort(leftArr, mid);
        mergeSort(rightArr, n — mid);
        merge(arr, leftArr, rightArr, mid, n — mid);
    }
    public static void merge(int[] arr, int[] leftArr, int [] rightArr, int leftLength, int rightLength){
        int k=0, i=0, j=0;
        while (i < leftLength && j < rightLength){
            if(leftArr[i] <= rightArr[j]) arr[k++] = leftArr[i++];
            else arr[k++] = rightArr[j++];
        }
        while (i < leftLength){
            arr[k++] = leftArr[i++];
        }
        while (j < rightLength){
            arr[k++] = rightArr[j++];
        }
    }
}

Пояснение:

Задача на языке Java на алгоритм сортировки слиянием.

Общая оценка
Интересность
2/10
Сложность задачи
3/10
Лаконичность кода
3/10
Итого
2.7

Похожий код:

Фото аватара
Алексей Петров

Программист, разработчик с 5 летним опытом работы. Учусь на разработчика игр на Unity и разработчика VR&AR реальности (виртуальной реальности). Основные языки программирования: C#, C++.

Оцените автора
Бла, бла код
Добавить комментарий