Qualifier/PR Gitty Qualifier/src/Tabelle.java

221 lines
6.1 KiB
Java

import java.util.Arrays;
public class Tabelle {
public static void main(String[] args) {
int[] a1 = acht();
int[] a2 = sechzehn();
int[] a3 = zweiunddreizig();
int[] a4 = vierundsechzig();
int[] a5 = einszweiacht();
int[] a6 = zweifünfsechs();
int[] a7 = fünfeinszwei();
int[] a8 = einK();
int[] a9 = zweiK();
int[] a10 = fünfK();
int[] a11 = zehnK();
System.out.print("Größe des Arrays ");System.out.print("8 ");System.out.print("16 ");System.out.print("32 ");System.out.print("64 ");System.out.print("128 ");System.out.print("256 ");System.out.print("512 ");System.out.print("1000 ");System.out.print("2000 ");System.out.print("5000 ");System.out.print("10000 ");
System.out.println();
System.out.print("Bubblesort ");System.out.print(bubblesort(a1)+ " ");System.out.print(bubblesort(a2)+ " ");System.out.print(bubblesort(a3)+ " ");System.out.print(bubblesort(a4)+ " ");System.out.print(bubblesort(a5)+ " ");System.out.print(bubblesort(a6)+ " ");System.out.print(bubblesort(a7)+ " ");System.out.print(bubblesort(a8)+ " ");System.out.print(bubblesort(a9)+ " ");System.out.print(bubblesort(a10)+ " ");System.out.print(bubblesort(a11)+ " ");
System.out.println();
System.out.print("Selectionsort ");System.out.print(selectionsort(a1)+ " ");System.out.print(selectionsort(a2)+ " ");System.out.print(selectionsort(a3)+ " ");System.out.print(selectionsort(a4)+ " ");System.out.print(selectionsort(a5)+ " ");System.out.print(selectionsort(a6)+ " ");System.out.print(selectionsort(a7)+ " ");System.out.print(selectionsort(a8)+ " ");System.out.print(selectionsort(a9)+ " ");System.out.print(selectionsort(a10)+ " ");System.out.print(selectionsort(a11)+ " ");
System.out.println();
System.out.print("Insertionsort ");System.out.print(insertionsort(a1)+ " ");System.out.print(insertionsort(a2)+ " ");System.out.print(insertionsort(a3)+ " ");System.out.print(insertionsort(a4)+ " ");System.out.print(insertionsort(a5)+ " ");System.out.print(insertionsort(a6)+ " ");System.out.print(insertionsort(a7)+ " ");System.out.print(insertionsort(a8)+ " ");System.out.print(insertionsort(a9)+ " ");System.out.print(insertionsort(a10)+ " ");System.out.print(insertionsort(a11)+ " ");
}
// bestCase worstCase
//Bubblesort O(n^2) O(n^2)
//Selectionsort O(n) O(n^2)
//Insertionsort O(n) O(n^2)
//Zur Klärung der "Sockenfrage" berechnen Sie die Anzahl der Vergleiche für gute (n log n)!!! und
//schlechte (n^2)!!! Sortieralgorithmen für 2 x 10 Elemente (Socken) und für 20 Elemente. Was fällt Ihnen auf?
//Gute(2*10): 10*log2(10) = 10*3,32 = 33,2 --> 2*33,2 = 66 (ungefähre ergebnisse)
//Schlechte(2*10): 10^2 = 100 (Ein Array Länge 10) --> 2*100 = 200 Vergleiche (Sind ja zwei Arrays)
//Gute(20): 20*log2(20) = 20*4,32 = 86 (ungefäre ergebnisse)
//Schlechte(20): 20^2 = 400 Vergleiche
//CompareTO integer rückgabewert
//Bsp: String var1 = "Hallo";
// var1.compareTo("HalloWelt");
//Bei positiv kommt der wert nach rechts
//Bei negativ nach links
//Bei 0 ist er gleich
public static int bubblesort (int[] arr) {
int d = 0;
int temp = -1;
for (int i = 0; i < arr.length - 1;i++) {
for (int a = 0; a < arr.length -1 ;a++) {
if (arr[a] > arr[a+1]) {
temp = arr[a+1];
arr[a+1] = arr[a];
arr[a] = temp;
d++;
}
}
}
return d;
}
public static int selectionsort (int[] arr) {
int d = 0;
int temp = -1;
for (int i = 0; i < arr.length - 1;i++) {
int min = i;
for(int a = i; a < arr.length ;a++) {
if(arr[a] < arr[min]) {
min = a;
}
d++;
}
temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
return d;
}
public static int insertionsort (int[] arr) {
int d = 0;
for (int i = 0; i < arr.length - 1 ;i++) {
if (arr[i+1] < arr[i]) {
int m = arr[i+1];
int j = i;
while (j >= 0 && arr[j] > m) {
arr[j+1] = arr[j];
j--;
}
arr[j+1] = m;
}
d++;
}
return d;
}
public static int[] acht () {
int[] arr = new int[8];
int i = 0;
for (int z = 8; z > 0; z--) {
arr[i] = z;
i++;
}
return arr;
}
public static int[] sechzehn () {
int[] arr = new int[16];
int i = 0;
for (int z = 16; z > 0; z--) {
arr[i] = z;
i++;
}
return arr;
}
public static int[] zweiunddreizig () {
int[] arr = new int[32];
int i = 0;
for (int z = 32; z > 0; z--) {
arr[i] = z;
i++;
}
return arr;
}
public static int[] vierundsechzig () {
int[] arr = new int[64];
int i = 0;
for (int z = 64; z > 0; z--) {
arr[i] = z;
i++;
}
return arr;
}
public static int[] einszweiacht () {
int[] arr = new int[128];
int i = 0;
for (int z = 128; z > 0; z--) {
arr[i] = z;
i++;
}
return arr;
}
public static int[] zweifünfsechs () {
int[] arr = new int[256];
int i = 0;
for (int z = 256; z > 0; z--) {
arr[i] = z;
i++;
}
return arr;
}
public static int[] fünfeinszwei () {
int[] arr = new int[512];
int i = 0;
for (int z = 512; z > 0; z--) {
arr[i] = z;
i++;
}
return arr;
}
public static int[] einK () {
int[] arr = new int[1000];
int i = 0;
for (int z = 1000; z > 0; z--) {
arr[i] = z;
i++;
}
return arr;
}
public static int[] zweiK () {
int[] arr = new int[2000];
int i = 0;
for (int z = 2000; z > 0; z--) {
arr[i] = z;
i++;
}
return arr;
}
public static int[] fünfK () {
int[] arr = new int[5000];
int i = 0;
for (int z = 5000; z > 0; z--) {
arr[i] = z;
i++;
}
return arr;
}
public static int[] zehnK () {
int[] arr = new int[10000];
int i = 0;
for (int z = 10000; z > 0; z--) {
arr[i] = z;
i++;
}
return arr;
}
}