daily pastebin goal
78%
SHARE
TWEET

Untitled

a guest Feb 13th, 2018 75 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package com.company;
  2.  
  3. import java.util.Random;
  4.  
  5. /**
  6.  * Zadanie 1, mergesort
  7.  */
  8. public class Main {
  9.  
  10.     private static class Mergesort
  11.     {
  12.         private int[] numbers;
  13.         private int[] helper;
  14.         private int number;
  15.  
  16.         public void sort(int[] values) {
  17.             numbers = values;
  18.             number = values.length;
  19.             helper = new int[number];
  20.  
  21.         }
  22.  
  23.         private void mergesort(int low, int high)
  24.         {
  25.             //sprawdz czy zmienna low jest mniejsza niz high jesli nie to tablica jest juz posortowana
  26.             if(low < high)
  27.             {
  28.                 //pobierz element po srodku
  29.                 int middle = low + (high - low) / 2;
  30.                 //sortuj lewa czesc tablicy
  31.                 mergesort(low, middle);
  32.                 //sortuj prawa czesc tablicy
  33.                 mergesort(middle + 1, high);
  34.                 //polacz oba wyniki
  35.                 merge(low, middle, high);
  36.             }
  37.         }
  38.  
  39.         private void merge(int low, int middle, int high)
  40.         {
  41.             for(int i = low; i <= high; i++)
  42.             {
  43.                 helper[i] = numbers[i];
  44.             }
  45.  
  46.             int i = low;
  47.             int j = middle + 1;
  48.             int k = low;
  49.  
  50.             while(i <= middle && j <= high)
  51.             {
  52.                 if(helper[i] <= helper[j])
  53.                 {
  54.                     numbers[k] = helper[i];
  55.                     i++;
  56.                 }else{
  57.                     numbers[k] = helper[j];
  58.                     j++;
  59.                 }
  60.                 k++;
  61.             }
  62.  
  63.             while(i <= middle)
  64.             {
  65.                 numbers[k] = helper[i];
  66.                 k++;
  67.                 i++;
  68.             }
  69.         }
  70.     }
  71.  
  72.     private static int[] generateRandomNumbers(int size)
  73.     {
  74.         int[] numbers = new int[size];
  75.         Random randomGenerator = new Random();
  76.         for(int i = 0; i < numbers.length; i++)
  77.             numbers[i] = randomGenerator.nextInt();
  78.  
  79.         return numbers;
  80.     }
  81.  
  82.     public static void main(String[] args) {
  83.  
  84.         long startTime = System.currentTimeMillis();
  85.         Mergesort mergesort = new Mergesort();
  86.  
  87.         int[] numbers = generateRandomNumbers(6000000);
  88.         mergesort.sort(numbers);
  89.  
  90.         long stopTime = System.currentTimeMillis();
  91.         long elapsedTime = stopTime - startTime;
  92.  
  93.         System.out.println("Elapsed time: " +  elapsedTime);
  94.  
  95.  
  96.     }
  97. }
RAW Paste Data
Top