Oopm1516 Ex09

Zielsetzung für die Übung

  • Komplexität von Algorithmen
public class complexity {

    static int Suche(int[] feld, int gesuchterEintrag) {
        for (int i = 0; i < feld.length; i++)        //n+1
            if (feld[i] == gesuchterEintrag)        //n
                return i;                    //0
        return -1;                             //1
    }
    //2n+2 € O(n) (Worst Case)

    public static int[] insertionSort(int[] sortieren) {
        int temp;                                    // 1
        for (int i = 1; i < sortieren.length; i++) {            // n
            temp = sortieren[i];                        // n-1
            int j = i;                                // n-1
            while (j > 0 && sortieren[j - 1] > temp) {          // (n-1)*n/2 + 1
                sortieren[j] = sortieren[j - 1];            // (n-1)*n/2
                j--;                                // (n-1)*n/2
            }
            sortieren[j] = temp;                        // n-1
        }
        return sortieren;                                // 1
    }
    // O(n^2) (Worst Case)
    // O(n) (Best Case)

    public static int[] bubblesort(int[] zusortieren) {
        int temp;                                        // 1
        for(int i=1; i<zusortieren.length; i++) {                // n
            for(int j=0; j<zusortieren.length-i; j++) {             // n*(n+1)/2 - 1
                if(zusortieren[j]>zusortieren[j+1]) {            // n*(n-1)/2 
                    temp=zusortieren[j];                    // n*(n-1)/2  (Worst Case)
                    zusortieren[j]=zusortieren[j+1];            // n*(n-1)/2  (Worst Case)
                    zusortieren[j+1]=temp;                // n*(n-1)/2 -(Worst Case)
                }

            }
        }
        return zusortieren;                                    // 1
    }
    // 4*((n^2-n)/2)+((n^2+n)/2)+n+1 € O(n^2) (Worst Case)

Zielsetzung für das Programmierpraktikum

  • Vererbung
    • Abstrakte Klassen (Was ist das, Wie ist es aufgebaut)
    • Verwendung von extends
    • Verwendung von super()
    • Überschreiben von Methode
    • Erben von "normalen" Klassen und abstrakten Klassen
    • (Verwendung von instanceof)
    • Erzeugen von Objekten