/• ~j-Ai
end while;
A {j +1 ] ; ~ x;
ond -for; and;
for i: = 2 to n
przesuwanie kolejnych kluczy z zakresu f i —1 nalejaco do 1 ]_ w prawo a t ćz znalezienia j-tego klucza- niniejszego od i-tego wstawienie i-cego klucza w miejsce j-tego and for;
Aigorytm polega na pobieraniu kolejnych elementów „i" od 2 do n, omz wstawianiu ich w odpowiednie miejsce do posortowanego już ciągu PI pierwszych elementów. Wstawienie weno wnika (czy i i elementu zerowego o inności mniejszej niż najmniejszy element tablicy np. -T) umożliwia wyrzucenie z pętli sprawdzania czy’ osiągnięto początek tablicy.
(n) = 2 + 3 + ... - n = ((2+n)(n-])]/2 = O(r)
średnia Ib. porównań w i-rym kroku
Tjr (n)= XE; =y
i-2
-2
J , ~ 2^2
n -f
29, Podać algorytm sortowania szybkiego (Quicksort). Co warunkuje jego szybkie działanie. QuvccsoeI ^^
procedurę Quicksort {i> j : inr ecer) ;
if A [ i ] do Afjj zawierają co najmniej dwa różne klucze then
Niech v bećzie większym z dwóch różnych kluczy najbardziej na lewo położonych w ciaou ;
Vnn -J r ł-s © r*«n» « >“ a i>~ -> i 1 i* i i hal* "r a rll a V C f i « 1 T 1
— — — — '------ — — J - - - l — i ' • • - J / ----f ---— -----— - i — ‘ - t J i
podciąg Afi' . p ; v -■ l \ składa sie z kluczy umiej szych od v podciąg A(k] .. A(j] składa sie £ kluczy większych badf równych v Ouizy~—c r z (i k — i) i Ouicksorz(k,j};
©nd if;
Konstrukcja algorytmu oparta jest na zasadzie „ćzjci i zwyciężaj”. Lista wejściowa zostaje w specjalny sposób podzielona na dwie części, po czym obie są sortowane niezależnie.
?, Wyznaczyć złożoność pesymistyczna^ i średnią algorytmu sortowania szybkiego, X\oio^oil ŁC k>i*C cOA^y^ej
.(a)-!"1 ® ST"
|c:n-rT(n -l)-r{g) n > lj ;
5 (n) “Cłn + Tps (n-l) c, = c,n + c2 (n-l) + (n-2) -i- c, + e, * Ci (b + n-l -i- n-2 + ... + 3 -?■ 2) -
: (n-l) •>- nci = n2 -y--'- n(—+C|) - c: = O(rT)
° = ‘c:n-rT(n-l)-r(g) n > lj
no.
(n)
n =
Cjn + T^n-O + T^i) n >