Ten dowód jest dowodem indukcyjnym i wygląda następująco:
P (n) jest twierdzeniem, że „Quicksort poprawnie sortuje każdą tablicę wejściową o długości n”.
Przypadek podstawowy: każda tablica wejściowa o długości 1 jest już posortowana (blokada P (1))
Krok indukcyjny: fix n => 2. Napraw niektóre tablice wejściowe o długości n.
Trzeba pokazać: jeśli P (k) utrzymuje się dla wszystkich k <n, to P (n) również
Następnie rysuje tablicę A podzieloną wokół części przestawnej p. Rysuje więc p i wywołuje część tablicy, która jest <p jako pierwsza część, a część, która jest> p, jest drugą częścią. Długość części 1 = k1, a długość części 2 wynosi k2. Dzięki potwierdzeniu poprawności podprogramu podziału (udowodnionym wcześniej) oś obrotu p kończy się we właściwej pozycji.
Według hipotezy indukcyjnej: 1., 2. części są poprawnie sortowane według wywołań rekurencyjnych. (Używając P (K1), P (k2))
Zatem: po wywołaniach rekurencyjnych cała tablica jest poprawnie sortowana.
CO BYŁO DO OKAZANIA
Moje zamieszanie : mam duży problem z tym, jak dokładnie to potwierdza. Zakładamy więc, że P (k) rzeczywiście obowiązuje dla wszystkich liczb naturalnych k <n.
Większość dowodów indukcyjnych, które do tej pory widziałem, idzie mniej więcej tak: Udowodnij przypadek podstawowy i pokaż, że P (n) => P (n + 1). Zazwyczaj dotyczyły one także pewnego rodzaju manipulacji algebraicznych. Ten dowód wydaje się bardzo różny i nie rozumiem, jak zastosować w nim koncepcję indukcji. Mogę poniekąd zrozumieć, że poprawność podprogramu Partycja jest kluczem. Oto uzasadnienie jego poprawności: Wiemy, że każde wywołanie rekurencyjne podzieli tablicę wokół osi przestawnej. Ten punkt obrotu będzie wtedy w prawidłowej pozycji. Następnie każda podtablica zostanie dodatkowo podzielona wokół osi obrotu, a następnie ta oś obrotu znajdzie się w prawidłowej pozycji. Trwa to tak długo, aż pojawi się podtablica o długości 1, która jest trywialnie posortowana.
Ale wtedy nie zakładamy, że P (k) obowiązuje dla wszystkich k <n .... w rzeczywistości POKAŻEM, że tak (ponieważ podprogram Partycji zawsze umieści jeden element na właściwej pozycji). Czy nie zakładamy, że P (k) trzyma dla wszystkich k