Advertisement
slik1977

MergeSort+Benchmark+Evtyukhov

Feb 24th, 2022
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.66 KB | None | 0 0
  1. package MyPackage;
  2.  
  3. import org.openjdk.jmh.annotations.*;
  4.  
  5. import java.util.concurrent.TimeUnit;
  6.  
  7. public class MergeSort {
  8.     void merge(int arr[], int l, int m, int r)
  9.     {
  10.         int n1 = m - l + 1;
  11.         int n2 = r - m;
  12.  
  13.         int L[] = new int[n1];
  14.         int R[] = new int[n2];
  15.  
  16.         for (int i = 0; i < n1; ++i)
  17.             L[i] = arr[l + i];
  18.         for (int j = 0; j < n2; ++j)
  19.             R[j] = arr[m + 1 + j];
  20.  
  21.         int i = 0, j = 0;
  22.  
  23.         int k = l;
  24.         while (i < n1 && j < n2) {
  25.             if (L[i] <= R[j]) {
  26.                 arr[k] = L[i];
  27.                 i++;
  28.             }
  29.             else {
  30.                 arr[k] = R[j];
  31.                 j++;
  32.             }
  33.             k++;
  34.         }
  35.  
  36.         while (i < n1) {
  37.             arr[k] = L[i];
  38.             i++;
  39.             k++;
  40.         }
  41.  
  42.         while (j < n2) {
  43.             arr[k] = R[j];
  44.             j++;
  45.             k++;
  46.         }
  47.     }
  48.  
  49.     void sort(int arr[], int l, int r)
  50.     {
  51.         if (l < r) {
  52.             // Find the middle point
  53.             int m =l+ (r-l)/2;
  54.  
  55.             // Sort first and second halves
  56.             sort(arr, l, m);
  57.             sort(arr, m + 1, r);
  58.  
  59.             // Merge the sorted halves
  60.             merge(arr, l, m, r);
  61.         }
  62.     }
  63.  
  64.     static void printArray(int arr[])
  65.     {
  66.         int n = arr.length;
  67.         for (int i = 0; i < n; ++i)
  68.             System.out.print(arr[i] + " ");
  69.         System.out.println();
  70.     }
  71.  
  72.     public void ArraySort(){
  73.         var array = new int[1000];
  74.         for (int i = 0; i < 1000; i++)
  75.             array[i] = 1000 - i;
  76.         sort(array, 0, 999);
  77.     }
  78. }
  79.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement