Ich habe dieses Problem mit CLRS versucht (Seite 39, 2.3-4).
Wir können die Einfügesortierung als rekursive Prozedur wie folgt ausdrücken. Zum Sortieren sortieren
A[1... n]
wir rekursivA[1... n-1]
und fügen es dannA[n]
in das sortierte Array einA[1... n-1]
. Schreiben Sie eine Wiederholung für die Laufzeit dieser rekursiven Version der Einfügesortierung.
Die Wiederholung, die ich bildete, war
Meine Argumentation
- der Basisfall von Die Liste ist so sortiert, dass es keine Arbeit gibt, daher konstante Zeit.
- In allen anderen Fällen hängt die Zeit davon ab,
A[1...n-1]
ob die Sequenz sortiert und dann in diese Sequenz eingefügt wird. Daher sollte es ihre Summe sein, dh.
Ich wollte wissen, ob die Wiederholungsbeziehung korrekt ist. Wenn nicht, was sind die Fehler und wie kann eine Wiederholungsbeziehung richtig formuliert werden?