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 na4.2. PROSTE ALGORYTMY SORTOWANIA TABLIC 18 4.2.3. Sortowanie bąbelkowe Sortowanie bąbelkowe (ang. buALG6 86 Rozdział 4. Algorytmy sortowania zamiany sąsiadujących ze sobą elementów, a druga będzie wyALG8 88 Rozdział 4. Algorytmy sortowania Jest chyba dość oczywiste, że wywołania rekurencyjne zatrzALG9 4.3. Quicksort, algorytm klasy Q(N log2N) 89 • P wartość „osiowa” (zazwyczajALG 0 90 Rozdział 4. Algorytmy sortowania 90 Rozdział 4. Algorytmy sortowania Rys. 4 - 8. SortowanieALG5 Rozdział 6Derekursywacja Podjęcie tematu przekształcania algorytmów rekurencyjnych na ich postALG7 4.3. Duicksort, algorytm klasy Q(N log2N) 874.3. Quicksort, algorytm klasy 0(Nlog2N) Jest to s7. Strona w pliku sort. jsp będzie realizowała sortowanie bąbelkowe zbioruSortowanie bąbelkowe zamiana = TAK; dopóki (zamiana == TAK) wykonuj: X = 0; zamiana = NIE; dopóki (Xbąbelkowe Sortowanie bąbelkowezdj8 (7) Sortowanie bąbelkowe Sortowanie bąbelkowe opiera się na zasadzie porównania i np. liczba 1zdj9 (7) Sortowanie bąbelkowe Sortowanie bąbelkowe opiera się na zasadzie porównania i ewentualnejFRANEK? 5 Wytnij elementy z wkładki. Gotowe! .FRANEK” 85 Łącząc przód i tył głowy żółwika, nie skl23826 PC190037 INFORMATYKA WYKI ADb sortowanie Quicksort sortowanie bąbelków void sort (int n, doublALG5 Przedmowa 15Uwagi do wydania 2 W bieżącej edycji książki, wraz z całym tekstem zostały gruntowwięcej podobnych podstron