Page 46 - MATINF Nr. 3
P. 46

46                                                                                     C. B˘alc˘au



                Urm˘atorul rezultat este o consecint , ˘a imediat˘a a Corolarului 1, Lemelor 2 s , i 3 s , i Corolarului
            1 din [2] (conform c˘aruia dac˘a f(n) ∼ g(n), atunci f(n) = Θ(g(n))).

            Teorema 1 (complexitatea algoritmilor de sortare). Num˘arul de comparat ,ii de chei
            efectuate de un algoritm optim de sortare a unui vector cu n componente este asimptotic
            echivalent cu
                                                        n log n,
                                                             2
            atˆat ˆın cazul cel mai defavorabil, cˆat s , i ˆın cazul mediu (cazul timpului mediu de execut ,ie), deci
            ˆın ambele cazuri un astfel de algoritm are complexitatea


                                                       Θ(n log n).
                                                              2
            Observat ,ia 4. Dac˘a un algoritm de sortare are instruct , iuni redundante, atunci ˆın arborele extins
            de sortare asociat orice nod extern care nu corespunde unei ordini a σ(1) ≤ a σ(2) ≤ . . . ≤ a σ(n)
            (calea de la r˘ad˘acin˘a la el fiind imposibil˘a la executarea algoritmului) este etichetat cu Ø.
                ˆ
                In acest caz arborele extins de sortare va cont , ine mai mult de n! noduri externe (iar arborele
            de sortare va cont , ine mai mult de n! − 1 noduri), deci un astfel de algoritm nu poate fi optim ˆın
            raport cu timpul mediu de execut , ie.

            Exemplul 6. Consider˘am algoritmul de sortare prin select , ie:

                SORTSEL(A, n) :
                for i = 1, n − 1 do
                   m ← i;                                                   // a m = min{a i , a i+1 , . . . , a n }
                   for j = i + 1, n do
                       if A[j] < A[m] then
                           m ← j;

                   A[i] ↔ A[m];                                                       // interschimbare


                Arborele extins de sortare asociat algoritmului pentru n = 3 este reprezentat ˆın figura
            urm˘atoare.


                                                           1?2

                                                 ≤                    >

                                         1?3                                 2?3
                                   ≤            >                      ≤            >


                                2?3               1?2               1?3               1?2
                            ≤        >        ≤        >        ≤        >         ≤       >

                         (1,2,3)   (1,3,2)  (3,1,2)    Ø      (2,1,3)  (2,3,1)    Ø      (3,2,1)





                Observ˘am c˘a algoritmul cont , ine instruct , iuni redundante, s , i anume comparat , ia ˆıntre elemen-
            tele a 1 s , i a 2 se efectueaz˘a inutil de dou˘a ori pe penultimul nivel.
   41   42   43   44   45   46   47   48   49   50   51