Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- public class Mymerge {
- public static void main(String[] args) {
- Random rand = new Random();
- int n = rand.nextInt(10);
- System.out.println("n=" + n);
- int[][] a = new int[n][2];
- for (int i = 0; i < n; i++) {
- a[i][0] = rand.nextInt(10);
- a[i][1] = rand.nextInt(10);
- }
- Sliyaniye(a, 0, a.length - 1);
- out(a);
- }
- public static void Sliyaniye(int[][] a, int start, int end) {
- if (start < end) {
- Sliyaniye(a, start, (start + end) / 2);
- Sliyaniye(a, (start + end) / 2 + 1, end);
- Merge(a, start, end);
- }
- }
- public static void Merge(int[][] a, int start, int end) {
- int l, r, m;
- int[][] temp = new int[end-start+1][2];
- m = (start + end) / 2;
- l = start;
- r = m + 1;
- for (int j = start; j <= end; j++) {
- if ((l <= m) && ((r > end) || (a[l][0] < a[r][0]) || (a[l][0] == a[r][0] && a[l][1] < a[r][1]))) {
- temp[j - start][0] = a[l][0];
- temp[j - start][1] = a[l][1];
- l++;
- } else {
- temp[j - start][0] = a[r][0];
- temp[j - start][1] = a[r][1];
- r++;
- }
- }
- out(temp);
- for (int j = start; j <= end; j++) {
- a[j] = temp[j - start];
- }
- }
- public static void out(int[][] a) {
- System.out.println();
- for (int r[] : a) {
- System.out.println(r[0] + " " + r[1]);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement