Partition do algorytmu Quick sort
Partition(A[l..r])
piwot<--A[l]; i<--l+1; j<--r
koniec <-- FALSE
while (not koniec)
do while (i<r and A[i]<piwot)
do i<--i+1
while (j>l and A[j]>=piwot)
do j<-- j-1
if i<j
then zamien A[i], A[j])
i<--i+1
j<--j-1
else koniec <-- TRUE
A[l]<--A[j]
A[j]<--piwot
return j
- 3 i 13 linijki **
- TRUE I FALSE, to są wartości logiczne, czytałem trochę o tym w internecie, ale co robi w algorytmie?
- jeśli i będzie większe od j to oznacza koniec ("else koniec <-- TRUE), a co robi linijka 3? Po co ona jest?
- 4 linijka **
- while (not koniec) - rozumiem, że oznacza "jeśli nie koniec", to wykonuj (linie 5-13)
- 14 i 15 linijki **
- do tego przechodzimy, gdy nie będzie się zgadzało (if i<j), tak?
P.S. Dodam, że bardzo pomogliście mi w zrozumieniu bubble sort, dzięki temu już ogarnąłem 3 znane algorytmy sortowania: selection sort, insertion sort oraz counting sort.