Advertisement
Guest User

Untitled

a guest
May 24th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.54 KB | None | 0 0
  1. import java.util.*;
  2. import java.io.*;
  3.  
  4. public class MergeSort
  5. {
  6.     void merge(int arr[], int l, int m, int r)
  7.     {
  8.         // Find sizes of two subarrays to be merged
  9.         int n1 = m - l + 1;
  10.         int n2 = r - m;
  11.  
  12.         /* Create temp arrays */
  13.         int L[] = new int [n1];
  14.         int R[] = new int [n2];
  15.  
  16.         /*Copy data to temp arrays*/
  17.         for (int i=0; i<n1; ++i)
  18.             L[i] = arr[l + i];
  19.         for (int j=0; j<n2; ++j)
  20.             R[j] = arr[m + 1+ j];
  21.  
  22.  
  23.         /* Merge the temp arrays */
  24.  
  25.         // Initial indexes of first and second subarrays
  26.         int i = 0, j = 0;
  27.  
  28.         // Initial index of merged subarry array
  29.         int k = l;
  30.         while (i < n1 && j < n2)
  31.         {
  32.             if (L[i] <= R[j])
  33.             {
  34.                 arr[k] = L[i];
  35.                 i++;
  36.             }
  37.             else
  38.             {
  39.                 arr[k] = R[j];
  40.                 j++;
  41.             }
  42.             k++;
  43.         }
  44.  
  45.         /* Copy remaining elements of L[] if any */
  46.         while (i < n1)
  47.         {
  48.             arr[k] = L[i];
  49.             i++;
  50.             k++;
  51.         }
  52.  
  53.         /* Copy remaining elements of R[] if any */
  54.         while (j < n2)
  55.         {
  56.             arr[k] = R[j];
  57.             j++;
  58.             k++;
  59.         }
  60.     }
  61.  
  62.     // Main function that sorts arr[l..r] using
  63.     // merge()
  64.     void sort(int arr[], int l, int r)
  65.     {
  66.         if (l < r)
  67.         {
  68.             // Find the middle point
  69.             int m = (l+r)/2;
  70.  
  71.             // Sort first and second halves
  72.             sort(arr, l, m);
  73.             sort(arr , m+1, r);
  74.  
  75.             // Merge the sorted halves
  76.             merge(arr, l, m, r);
  77.         }
  78.     }
  79.    
  80.    
  81.     public static void main(String args[])
  82.     {
  83.         int number = 0;
  84.         int count = 0;
  85.        
  86.         //count data in file
  87.         try
  88.         {
  89.             FileReader fr = new FileReader( "test.txt" );
  90.             BufferedReader br = new BufferedReader( fr );
  91.            
  92.             String input;
  93.             while ( ( input = br.readLine()) != null )
  94.             {
  95.                 Scanner sc = new Scanner(input);
  96.                 while( sc.hasNextInt() )
  97.                 {
  98.                     number = sc.nextInt();
  99.                     //System.out.print(number + " ");
  100.                     count++;
  101.                 }
  102.             }
  103.             //System.out.println(count);
  104.             br.close();
  105.         }
  106.         catch( Exception e )
  107.         {
  108.             System.out.println(" General problem " + e.getMessage() );
  109.         }
  110.        
  111.         int arr[] = new int[count];
  112.         int i = 0;
  113.         try
  114.         {
  115.             FileReader fr = new FileReader( "test.txt" );
  116.             BufferedReader br = new BufferedReader( fr );
  117.            
  118.             String input;
  119.             while ( ( input = br.readLine()) != null )
  120.             {
  121.                 Scanner sc = new Scanner(input);
  122.                 while( sc.hasNextInt() )
  123.                 {
  124.                     arr[i] = sc.nextInt();
  125.                     //System.out.println(arr[i]);
  126.                     i++;
  127.                 }
  128.             }
  129.             br.close();
  130.         }
  131.         catch( Exception e )
  132.         {
  133.             System.out.println(" General problem " + e.getMessage() );
  134.         }
  135.        
  136.         MergeSort ob = new MergeSort();
  137.         ob.sort(arr,0,arr.length-1);
  138.        
  139.         for(int k = 0; k < arr.length; k++) //arr.length
  140.         {
  141.             System.out.println(arr[k]);
  142.         }
  143.     }
  144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement