Advertisement
Guest User

Untitled

a guest
Nov 18th, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.61 KB | None | 0 0
  1. package com.module2hw;
  2.  
  3. import java.lang.reflect.Array;
  4. import java.text.DecimalFormat;
  5. import java.util.Arrays;
  6. import java.util.Random;
  7.  
  8. public class Main {
  9.  
  10.     private static Random rand = new Random();
  11.     private static int n1 = 100000, n2 = 120000;
  12.  
  13.     public static void main(String[] args) {
  14.         //how the heck we are comparing c++ with java using different random data sets???
  15.  
  16.         Long[] arr1 = generateNumbers(n1);
  17.         Long[] arr2 = generateNumbers(n2);
  18.  
  19.         Long startTime = System.nanoTime();
  20.  
  21.         Arrays.sort(arr1);
  22.         Arrays.sort(arr2);
  23.  
  24.         Long[] arr3 = mergeSortedArrays(arr1,arr2);
  25.  
  26.         Long time = System.nanoTime() - startTime;
  27.  
  28.         DecimalFormat formatter = new DecimalFormat("#0.000000000");
  29.         System.out.println("Elapsed time without arrays generation: " + formatter.format(time/1e9) + " sec.");
  30.     }
  31.  
  32.     private static Long[] generateNumbers(int n) {
  33.         Long[] array = new Long[n];
  34.         for(int i = 0; i < array.length; i++) {
  35.             array[i] = rand.nextLong();
  36.         }
  37.         return array;
  38.     }
  39.  
  40.     private static Long[] mergeSortedArrays(Long[] arr1, Long[] arr2) {
  41.         int i = 0, j = 0, k = 0;
  42.         Long[] result = new Long[arr1.length + arr2.length];
  43.  
  44.         //part of merge sort algorithm
  45.         while(i < arr1.length && j < arr2.length) {
  46.             result[k++] = arr1[i] <= arr2[j] ? arr1[i++] : arr2[j++];
  47.         }
  48.  
  49.         while(i < arr1.length) result[k++] = arr1[i++];
  50.         while(j < arr2.length) result[k++] = arr2[j++];
  51.         //-=-=-=-=-=-
  52.  
  53.         return result;
  54.     }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement