ALG 0

ALG 0



90 Rozdział 4. Algorytmy sortowania

90 Rozdział 4. Algorytmy sortowania


Rys. 4 - 8.

Sortowanie metodą Ouickson na przykładzie.

Tutaj zapowiem jedynie, że chodzi o taką dekompozycję problemu, aby uzyskać zysk czasowy' wykonywania programu (jak i przy okazji uproszczenie rozwiązywanego zadania). Algorytm Owcksort spełnia te oba założenia wręcz wzorcowo!

4.4. Uwagi praktyczne

Kryteria wyboru algorytmu sortowania mogą być zebrane w kilka łatwych do zapamiętania zasad:

•    do sortowania małych ilości elementów nie używaj superszybkich algorytmów, takich jak np. Quicksort, gdyż zysk będzie znikomy;

•    część znanych z literatury' i prasy fachowej algorytmów sortowania nie jest nigdy - lub jest bardzo rzadko - stosowana praktycznie. Powód jest dość prosty: trzymając się dobrze znanych metod mamy większą pewność, iż nie popełnimy jakiegoś nadprogramowego błędu.

Podczas programowania warto również uważnie czytać, czy' w bibliotekach standardowych używanego kompilatora nie ma już zaimplementowanej funkcji sortującej. Przykładowo w kompilatorze gcc istnieje gotowa funkcja o nazwie... t/sort o następującym nagłówku:

void qsort(void *base, size_L nmemb, size_l size, int (*r.ompar) (const void *, const void *>)

Tablica do posortowania może być dowolna (typ void), ale musimy dokładnie podać jej rozmiar: ilość elementów nmemb o rozmiarze size. Funkcja ąsort wymaga ponadto jako parametru wskaźnika do funkcji porównawczej. Przy omawianiu list jednokierunkowych dokładnie omówiono pojęcie wskaźników do funkcji, tutaj w celu ilustracji podam tylko gotowy kod do sortowania tablicy liczb całkowitych (przeróbka na sortowanie tablic innego typu niż int wymaga jedynie modyfikacji funkcji porównawczej comp i sposobu wywołania funkcji ąsort):


Wyszukiwarka

Podobne podstrony:
ALG6 126 Rozdział 5. Struktury danych Rys. 5 - 12. Metoda„ tablic równoległych " (2) DANE L2
Alg0 60 Rozdział 3. Analiza sprawności algorytmów •    Znak graficzny 3 należy czyta
ALG0 70 Rozdział 3. Analiza sprawności algorytmów Przykład: SRL=xn-3x„.i+2 x„ -2=0 daje
ALG0 190 Rozdział 7. Algorytmy przeszukiwania Odnalezienie liczby .1 w tablicy tub jest sygnalizowa
ALG0 20 Rozdział 1. Zanim wystartujemy (Na marginesie warto dodać, że przedsiębiorstwo Hollcritha
ALG0 30 Rozdział 2. Rekurencja 2.2 potwornie skomplikowany: klocków jest cala masa i niespecjalnie
ALG0 50_ _Rozdział2. Rekurencja Odpowiadający temu rozumowaniu program przedstawia się
ALG0 100 Rozdział 5. Struktury danyi z tych przypadków w istniejącej liście trzeba znaleźć miejsce
ALG0 110 Rozdział 5. Struktury danych Rysunek 5-9 zawiera już kilka nowości w porównaniu z tym, co
ALG0 120 Rozdział 5. Struktury danych i if (pos!=q) rsturn(O);    II element nie
Alg0 120 Rozdział 5. Struktury danych i if (pos!=q) rsturn(O);    II element nie
ALG0 130 Rozdział 5. Struktury danych Symboliczny stos znajdujący się pod każdą z sześciu grup inst
ALG0 140 Rozdział 5. Struktury danych porządek. Czy czasem owa procedura nie jest na tyle kosztowna
ALG0 150 Rozdział 5. Struktury danytl Jak jednak obejrzeć zawartość drzewa, które tak pieczołowicie
ALG0 170 Rozdział 6. Oerekursywaci 6.3. Uwaga: Wywołanie rekurencyjne procedury P zawarte w jakiejk
ALG 6 96 Rozdział 5. Struktury danych Rys. 5 - 3. FCOOh FCI4h FFEEh Przykład listy jedno-kierunk
Bild0 90 Rozdział 3 analizowaniu historii partii oraz różnorodnych opinii na jej temat, a w szczegó
ET 0 90 Rozdział 6. Popyt turystyczny •    roczny cykl wahań, w ramach którego wyróżn

więcej podobnych podstron