Advertisement
Guest User

Untitled

a guest
Dec 21st, 2014
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.61 KB | None | 0 0
  1.  
  2. import java.util.*;
  3.  
  4.  
  5. public class Mymerge {
  6.     public static void main(String[] args) {
  7.         Random rand = new Random();
  8.         int n = rand.nextInt(10);
  9.         System.out.println("n=" + n);
  10.         int[][] a = new int[n][2];
  11.  
  12.         for (int i = 0; i < n; i++) {
  13.             a[i][0] = rand.nextInt(10);
  14.             a[i][1] = rand.nextInt(10);
  15.         }
  16.  
  17.         Sliyaniye(a, 0, a.length - 1);
  18.         out(a);
  19.     }
  20.  
  21.     public static void Sliyaniye(int[][] a, int start, int end) {
  22.         if (start < end) {
  23.  
  24.             Sliyaniye(a, start, (start + end) / 2);
  25.             Sliyaniye(a, (start + end) / 2 + 1, end);
  26.  
  27.             Merge(a, start, end);
  28.         }
  29.     }
  30.  
  31.     public static void Merge(int[][] a, int start, int end) {
  32.         int l, r, m;
  33.         int[][] temp = new int[end-start+1][2];
  34.         m = (start + end) / 2;
  35.         l = start;
  36.         r = m + 1;
  37.         for (int j = start; j <= end; j++) {
  38.             if ((l <= m) && ((r > end) || (a[l][0] < a[r][0]) || (a[l][0] == a[r][0] && a[l][1] < a[r][1]))) {
  39.                 temp[j - start][0] = a[l][0];
  40.                 temp[j - start][1] = a[l][1];
  41.                 l++;
  42.             } else {
  43.                 temp[j - start][0] = a[r][0];
  44.                 temp[j - start][1] = a[r][1];
  45.                 r++;
  46.             }
  47.         }
  48.         out(temp);
  49.  
  50.         for (int j = start; j <= end; j++) {
  51.             a[j] = temp[j - start];
  52.         }
  53.     }
  54.  
  55.     public static void out(int[][] a) {
  56.         System.out.println();
  57.         for (int r[] : a) {
  58.             System.out.println(r[0] + " " + r[1]);
  59.         }
  60.     }
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement