Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- public class Solution {
- public static void main(String[] args) {
- Scanner scan = new Scanner(System.in);
- int[] a = new int[15];
- for (int i = 0; i < a.length; i++)
- a[i] = scan.nextInt();
- int ans[] = myMergeSort(a);
- for (int i = 0; i < ans.length; i++)
- System.out.print(ans[i] + " ");
- }
- public static int[] myMergeSort(int[] x) {
- if (x.length == 1)
- return x;
- int mid = x.length / 2;
- int[] left = new int[mid];
- for (int i = 0; i < left.length; i++)
- left[i] = x[i];
- int[] right = new int[x.length - mid];
- for (int i = 0; i < right.length; i++)
- right[i] = x[mid + i];
- int[] res = myMerge(myMergeSort(left), myMergeSort(right));
- return res;
- }
- private static int[] myMerge(int[] a, int[] b) {
- int ia = 0, ib = 0, i = 0;
- int[] res = new int[a.length + b.length];
- while (ia != a.length || ib != b.length) {
- if (ia == a.length) {
- res[i] = b[ib];
- ib++;
- i++;
- continue;
- }
- if (ib == b.length) {
- res[i] = a[ia];
- ia++;
- i++;
- continue;
- }
- if (a[ia] < b[ib]) {
- res[i] = a[ia];
- ia++;
- i++;
- continue;
- }
- if (a[ia] >= b[ib]) {
- res[i] = b[ib];
- ib++;
- i++;
- }
- }
- return res;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement