ALG5

ALG5



4.2. Sortowanie bąbelkowe, algorytm klasy 0(H2) 85

for (int j-n-l;j>i;j—) if (tab[j]<tab[ j -1 ]>

■ // zamiana taC[j-l) z tab OJ int trr.p=tab [ j-1] ;

tab[j-1]=tab|j] ; tab[j]=tmp;

)

Przeanalizujmy dokładnie sortowanie bąbelkowe pewnej 7-elementowej tablicy. Na rysunku 4-4 element „zacieniowany” jest tym, który w pojedynczym przebiegu głównej pętli programu „uleciał’' do góry jako najlżejszy. Tablica jest prze-miatana sukcesywnie od dołu do góry (pętla zmiennej i). Analizowane są zawsze dwa sąsiadujące ze sobą elementy (pętla zmiennej j): jeśli nie są one uporządkowane (u góry jest element „cięższy”), to następuje ich zamiana. W trakcie pierwszego przebiegu na pierwszą pozycję tablicy (indeks 0) ulatuje element „najlżejszy”, w trakcie drugiego przebiegu drugi najlżejszy wędruje na drugą pozycję tablicy (indeks 1) i tak dalej, aż do ostatecznego posortowania tablicy. Strefa pracy algorytmu zmniejsza się zatem o / w kolejnym przejściu dużej pętli - analizowanie za każdym razem całej tablicy byłoby oczywistym marnotrawstwem!

Rys. 4 - 4.

Sortowanie „bąbelkowe ".

0

1

2

3

4

5

6


etapy sortowania

0    12    3    4    5    6



indeks w tablicy

Nawet dość pobieżna analiza prowadzi do kilku negatywnych uwag na temat samego algorytmu:

•    dość często zdarzają się „puste przebiegi” (nie jest dokonywana żadna wymiana, bowiem elementy są już posortowane);

•    algorytm jest bardzo wrażliwy na konfiguracje danych. Oto przykład dwóch niewiele różniących się tablic, z których pierwsza wymaga jednej


Wyszukiwarka

Podobne podstrony:
ALG3 4.1. Sortowanie przez wstawianie, algorytm klasy 0(N2) 83 Idea tego algorytmu opiera się na na
4.2. PROSTE ALGORYTMY SORTOWANIA TABLIC 18 4.2.3. Sortowanie bąbelkowe Sortowanie bąbelkowe (ang. bu
ALG6 86 Rozdział 4. Algorytmy sortowania zamiany sąsiadujących ze sobą elementów, a druga będzie wy
ALG8 88 Rozdział 4. Algorytmy sortowania Jest chyba dość oczywiste, że wywołania rekurencyjne zatrz
ALG9 4.3. Quicksort, algorytm klasy Q(N log2N) 89 •    P wartość „osiowa” (zazwyczaj
ALG 0 90 Rozdział 4. Algorytmy sortowania 90 Rozdział 4. Algorytmy sortowania Rys. 4 - 8. Sortowanie
ALG5 Rozdział 6Derekursywacja Podjęcie tematu przekształcania algorytmów rekurencyjnych na ich post
ALG7 4.3. Duicksort, algorytm klasy Q(N log2N) 874.3. Quicksort, algorytm klasy 0(Nlog2N) Jest to s
7.    Strona w pliku sort. jsp będzie realizowała sortowanie bąbelkowe zbioru
Sortowanie bąbelkowe zamiana = TAK; dopóki (zamiana == TAK) wykonuj: X = 0; zamiana = NIE; dopóki (X
bąbelkowe Sortowanie bąbelkowe
zdj8 (7) Sortowanie bąbelkowe Sortowanie bąbelkowe opiera się na zasadzie porównania i np. liczba 1
zdj9 (7) Sortowanie bąbelkowe Sortowanie bąbelkowe opiera się na zasadzie porównania i ewentualnej
FRANEK? 5 Wytnij elementy z wkładki. Gotowe! .FRANEK” 85 Łącząc przód i tył głowy żółwika, nie skl
23826 PC190037 INFORMATYKA WYKI ADb sortowanie Quicksort sortowanie bąbelków void sort (int n, doubl
ALG5 Przedmowa 15Uwagi do wydania 2 W bieżącej edycji książki, wraz z całym tekstem zostały gruntow

więcej podobnych podstron