Advertisement
Guest User

Untitled

a guest
Nov 26th, 2015
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.36 KB | None | 0 0
  1. import java.io.File;
  2. import java.io.FileNotFoundException;
  3. import java.io.IOException;
  4. import java.lang.reflect.Array;
  5. import java.util.ArrayList;
  6. import java.util.Scanner;
  7.  
  8. public class Main {
  9.  
  10.     public static ArrayList<Integer> FileArray = new ArrayList<>();
  11.     public static String filename = "million.txt";
  12.     public static int counter = 10000;
  13.  
  14.     public static void main(String[] args) {
  15.         long startTime = System.nanoTime();
  16.         readFile(filename);
  17.  
  18.         for (int i = 0; i < counter; i++) {
  19.             int arrSize = FileArray.size() - 1;
  20.             int l = i;
  21.             int r = arrSize - i;
  22.  
  23.             quickSort(FileArray, l, r);
  24.             System.out.println(FileArray.get(i));
  25.         }
  26.         long endTime = System.nanoTime();
  27.         long durationMilli = (endTime - startTime) / 1000000;
  28.         System.out.println("");
  29.         System.out.println("Time elapsed "+ durationMilli + " milliseconds");
  30.  
  31.     }
  32.  
  33.     public static void readFile(String filename) {
  34.         java.io.FileInputStream inFile = null;
  35.         try {
  36.             inFile = new java.io.FileInputStream(filename);
  37.             Scanner sc = new Scanner(inFile);
  38.  
  39.             for (int i = 0; i < counter; i++) {
  40.                 FileArray.add(sc.nextInt());
  41.                 //System.out.println(FileArray.get(i));
  42.             }
  43.  
  44.             inFile.close();
  45.         } catch (FileNotFoundException e) {
  46.             e.printStackTrace();
  47.         } catch (IOException e) {
  48.             e.printStackTrace();
  49.         }
  50.     }
  51.  
  52.     static int partition(ArrayList<Integer> arr, int left, int right) {
  53.         int i = left, j = right;
  54.         int tmp;
  55.         int pivot = arr.get((left + right) / 2);
  56.  
  57.         while (i <= j) {
  58.             while (arr.get(i) < pivot)
  59.                 i++;
  60.             while (arr.get(j) > pivot)
  61.                 j--;
  62.             if (i <= j) {
  63.                 tmp = arr.get(i);
  64.                 arr.set(i, arr.get(j));
  65.                 arr.set(j, tmp);
  66.                 i++;
  67.                 j--;
  68.             }
  69.         }
  70.  
  71.         return i;
  72.     }
  73.  
  74.  
  75.     static void quickSort(ArrayList<Integer> arr, int left, int right) {
  76.         int index = partition(arr, left, right);
  77.         if (left < index - 1)
  78.             quickSort(arr, left, index - 1);
  79.         if (index < right)
  80.             quickSort(arr, index, right);
  81.  
  82.     }
  83.  
  84.  
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement