Advertisement
Guest User

Untitled

a guest
Dec 7th, 2015
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.25 KB | None | 0 0
  1. package sortierverfahren;
  2.  
  3. import java.util.Arrays;
  4.  
  5. public class Sortierverfahren {
  6.  
  7.     //Marius Spangenberger, Filipp Roos, Dominik Erbacher, Übungsgruppe 07.
  8.  
  9.     public static void main(String[] args) {
  10.         int[] feld = {43, 53, 3, 2, 4, 1, 56, 98, 14};
  11.         insertionSort(feld, 0, feld.length-1);
  12.         //easySort(feld);
  13.         //quickSort(feld, 0, feld.length - 1);
  14.         //linearSort(feld, 4);
  15.         System.out.println(Arrays.toString(feld));
  16.  
  17.     }
  18.  
  19.     public static void insertionSort(int[] a, int l, int r) {
  20.         for (int j = l+1; j < r + 1; j++) {
  21.             int key = a[j];
  22.             int i;
  23.             for (i = j; i > l && a[i-1] > key; i--) {
  24.                 a[i] = a[i-1];
  25.             }
  26.             a[i] = key;
  27.         }
  28.     }
  29.  
  30.     public static void easySort(int[] a) {
  31.         for (int i = 0; i < a.length - 1; i++) {
  32.             int min = a[i];
  33.             int indexMin = i;
  34.             for (int j = i + 1; j < a.length; j++) {
  35.                 if (a[j] < min) {
  36.                     min = a[j];
  37.                     indexMin = j;
  38.                 }
  39.             }
  40.             a[indexMin] = a[i];
  41.             a[i] = min;
  42.  
  43.         }
  44.         //      for (int i =0; i< a.length; i++){
  45.         //          System.out.print(a[i] + " ");
  46.         //      }
  47.     }
  48.  
  49.     public static void quickSort(int[] a, int l, int r) {//0, länge-1
  50.         if (l < r) {
  51.             int m = partition(a, l, r);
  52.             quickSort(a, l, m - 1);
  53.             quickSort(a, m + 1, r);
  54.         }
  55.     }
  56.  
  57.     public static int partition(int[] a, int l, int r) {
  58.         int pivot = a[r];
  59.         int i = l;
  60.         for (int j = l; j < r; j++) {
  61.             if (a[j] <= pivot) {
  62.                 swap(a, i, j);
  63.                 i++;
  64.             }
  65.         }
  66.         swap(a, i, r);
  67.         return i;
  68.     }
  69.  
  70.     public static void swap(int[] a, int i, int r) {
  71.         int help = a[i];
  72.         a[i] = a[r];
  73.         a[r] = help;
  74.     }
  75.  
  76.     public static void linearSort(int[] a, int k) {
  77.         int[] c = new int[k + 1];
  78.         for (int i = 0; i < a.length; i++) {
  79.             c[a[i]]++;
  80.         }
  81.  
  82.         for (int i = 0; i < k; i++) {
  83.             c[i + 1] += c[i];
  84.         }
  85.         int[] b = new int[a.length];
  86.         for (int j = a.length - 1; j >= 0; j--) {
  87.             b[c[a[j]] - 1] = a[j];
  88.             c[a[j]]--;
  89.         }
  90.         System.arraycopy(b, 0, a, 0, a.length);
  91.     }
  92.    
  93.     public static void combinedSort(int[] a, int t) {
  94.         combinedSort(a, 0, a.length-1, t);
  95.     }
  96.    
  97.     public static void combinedSort(int[] a, int l, int r, int t) {
  98.         if (l < r) {
  99.             if((r - l) > t) {
  100.                 int m = partition(a, l, r);
  101.                 quickSort(a, l, m - 1);
  102.                 quickSort(a, m + 1, r);
  103.             } else {
  104.                 insertionSort(a, l, r);
  105.             }
  106.         }
  107.     }
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement