O Notation zu InsertionSort richtig berechnen
-
Hallo,
ich möchte gerne den WorstCase Fall zu folgendem Algorithmus(InsertionSort) bestimmen. Ich hab die rechnung mal angefangen, weiß allerdings nicht weiter.Hier erstmal der Code in Java:
@SuppressWarnings({ "rawtypes", "unchecked" }) public static <T extends Comparable> void doInsertionSort(ArrayList<T> a) { for(int i = 1; i < a.size(); i++) { T currentValue = a.get(i); int j = i; while(j > 0) { if(a.get(j-1).compareTo(currentValue) >= 0) { a.set(j, a.get(j-1)); j--; } else { break; } a.set(j, currentValue); } }
So, meine Rechnung sieht bisher wie folgt aus:
Ist das überhaupt richtig? Und wie würde es weitergehen?
gruß seux
-
Durch Inspektion des Codes sieht man, dass die innere Schleife jeweis hoechstens i mal durchlaufen wird mit , wobei . Du bekommst dann folgende Reihe (den Grenzwert kann man einfach mittels Induktion beweisen):