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 L2Alg0 60 Rozdział 3. Analiza sprawności algorytmów • Znak graficzny 3 należy czytaALG0 70 Rozdział 3. Analiza sprawności algorytmów Przykład: SRL=xn-3x„.i+2 x„ -2=0 dajeALG0 190 Rozdział 7. Algorytmy przeszukiwania Odnalezienie liczby .1 w tablicy tub jest sygnalizowaALG0 20 Rozdział 1. Zanim wystartujemy (Na marginesie warto dodać, że przedsiębiorstwo HollcrithaALG0 30 Rozdział 2. Rekurencja 2.2 potwornie skomplikowany: klocków jest cala masa i niespecjalnieALG0 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źć miejsceALG0 110 Rozdział 5. Struktury danych Rysunek 5-9 zawiera już kilka nowości w porównaniu z tym, coALG0 120 Rozdział 5. Struktury danych i if (pos!=q) rsturn(O); II element nieAlg0 120 Rozdział 5. Struktury danych i if (pos!=q) rsturn(O); II element nieALG0 130 Rozdział 5. Struktury danych Symboliczny stos znajdujący się pod każdą z sześciu grup instALG0 140 Rozdział 5. Struktury danych porządek. Czy czasem owa procedura nie jest na tyle kosztownaALG0 150 Rozdział 5. Struktury danytl Jak jednak obejrzeć zawartość drzewa, które tak pieczołowicieALG0 170 Rozdział 6. Oerekursywaci 6.3. Uwaga: Wywołanie rekurencyjne procedury P zawarte w jakiejkALG 6 96 Rozdział 5. Struktury danych Rys. 5 - 3. FCOOh FCI4h FFEEh Przykład listy jedno-kierunkBild0 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óżnwięcej podobnych podstron