Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package kr_2;
- import java.util.*;
- public class Mergesort {
- public static void merge(int[] arr, int[] l, int[] r, int left, int right) {
- int i = 0, j = 0, k = 0;
- while (i < left && j < right) {
- if (l[i] <= r[j]) {
- arr[k++] = l[i++];
- } else {
- arr[k++] = r[j++];
- }
- }
- while (i < left) {
- arr[k++] = l[i++];
- }
- while (j < right) {
- arr[k++] = r[j++];
- }
- }
- public static void mergeSort(int[] a, int n) {
- if (n < 2) {
- return;
- }
- int mid = n / 2;
- int[] l = new int[mid];
- int[] r = new int[n - mid];
- for (int i = 0; i < mid; i++) {
- l[i] = a[i];
- }
- for (int i = mid; i < n; i++) {
- r[i - mid] = a[i];
- }
- mergeSort(l, mid);
- mergeSort(r, n - mid);
- merge(a, l, r, mid, n - mid);
- }
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- int n = Integer.parseInt(sc.nextLine());
- Random rd = new Random();
- int[] arr = new int[n];
- for (int i = 0; i < arr.length; i++) {
- arr[i]=rd.nextInt();
- }
- mergeSort(arr, arr.length);
- for (int i = 0; i < arr.length; i++) {
- System.out.printf("Array[%d]=%d\n", i, arr[i]);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment