Advertisement
Guest User

Highly Efficient Sort Algorithms

a guest
Jun 12th, 2015
323
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.06 KB | None | 0 0
  1. import java.util.Random;
  2.  
  3. class Main {
  4.  
  5.     public static void main(String[] args) {
  6.         System.out.print("Input:");
  7.         for (String arg : args) {
  8.             System.out.print(" " + arg);
  9.         }
  10.         System.out.println();
  11.  
  12.         Main.randSort(args);
  13.         // Main.assumeSort(args);
  14.  
  15.         System.out.print("Sorted:");
  16.         for (String arg : args) {
  17.             System.out.print(" " + arg);
  18.         }
  19.         System.out.println();
  20.     }
  21.  
  22.     public static void randSort(String[] arr) {
  23.         while (!Main.isSorted(arr)) {
  24.             Main.shuffle(arr);
  25.         }
  26.     }
  27.  
  28.     public static void assumeSort(String[] arr) {
  29.         if (!Main.isSorted(arr)) {
  30.             throw new RuntimeException("sorted array assumed");
  31.         }
  32.     }
  33.    
  34.     private static boolean isSorted(String[] arr) {
  35.         for (int i = 1; i < arr.length; i++) {
  36.             if (arr[i-1].compareTo(arr[i]) > 0) {
  37.                 return false;
  38.             }
  39.         }
  40.  
  41.         return true;
  42.     }
  43.  
  44.     static void shuffle(String[] arr) {
  45.         Random rng = new Random();
  46.  
  47.         for (int i = 0, length = arr.length; i < length; i++) {
  48.             int pos = rng.nextInt(length);
  49.  
  50.             String tmp = arr[pos];
  51.             arr[pos] = arr[i];
  52.             arr[i] = tmp;
  53.         }
  54.     }
  55.  
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement