cwiczenia4 stu, Wyższa Szkoła Technologii Informatycznych


Wyższa Szkoła Technologii Informatycznych

Ćwiczenia Algorytmy i struktury danych

ćwiczenia 4

  1. Złożoność czasowa algorytmów

Złożoność obliczeniowa stała - O(1)

Algorytm wykonuje stałą ilość operacji dominujących bez względu na rozmiar danych wejściowych. W takim algorytmie czas wykonania jest stały i nie zmienia się przy zmianie liczby przetwarzanych elementów.

Złożoność obliczeniowa liniowa - O(n)

Dla każdej danej algorytm wykonuje stałą ilość operacji dominujących. Czas wykonania jest proporcjonalny do liczby n danych wejściowych. Czas wykonania rośnie liniowo ze wzrostem liczby elementów.

Złożoność obliczeniowa kwadratowa - O(n2)

Algorytm dla każdej danej wykonuje ilość operacji dominujących proporcjonalną do liczby wszystkich przetwarzanych danych. Czas wykonania jest proporcjonalny do kwadratu liczby danych n.

Inne złożoności tego typu O(n3), O(n4)... noszą nazwę wielomianowych złożoności obliczeniowych.

Złożoność obliczeniowa logarytmiczna - O(log n)

W algorytmie zadanie rozmiaru n da się sprowadzić do zadania rozmiaru n/2. Typowym przykładem jest wyszukiwanie binarne w zbiorze uporządkowanym. Sprawdzenie środkowego elementu pozwala określić, w której z dwóch połówek zbioru może znajdować się poszukiwany element.

Ponieważ uczniowie młodszych klas liceum nie znają pojęcia logarytmu, podajemy jego skróconą definicję:

Zapis logax czytamy: logarytm przy podstawie a z liczby x. Wartością jest wykładnik potęgowy y, do którego należy podnieść podstawę logarytmu a, aby otrzymać liczbę logarytmowaną x.

logax = y wtedy i tylko wtedy, gdy ay = x

W określeniu klasy złożoności obliczeniowej nie podajemy podstawy logarytmu, ponieważ logarytmy o różnych podstawach z tej samej wartości różnią się od siebie jedynie iloczynem przez stałą:

Niech
logax = y oraz logbx = cy

Wtedy
ay = x, oraz bcy = x

Stąd
ay = bcy

(a)y = (bc)y

Zatem
a = bc oraz logbx = c logax

Ponieważ podstawy a i b są stałe, to i c musi być stałe. Z kolei z definicji notacji Omikron wynika, iż klasa złożoności dwóch funkcji różniących się jedynie iloczynem przez stałą jest taka sama. W informatyce bardzo często stosuje się logarytmy przy podstawie 2.

Przykład :

log24 = 2, bo 22 = 4

log216 = 4, bo 24 = 16

log2256 = 8, bo 28 = 256, itd.

Złożoność obliczeniowa liniowo logarytmiczna - O(n log n)

Zadanie rozmiaru n daje się sprowadzić do dwóch podzadań rozmiaru n/2 plus pewna ilość operacji, których liczba jest proporcjonalna do ilości danych n. Tego typu złożoność obliczeniową posiadają dobre algorytmy sortujące.

Złożoność obliczeniowa wykładnicza - O(2n), O(n!)

Złożoność obliczeniową O(2n) posiada algorytm, w którym wykonywana jest stała liczba operacji dla każdego podzbioru n danych wejściowych.

Złożoność obliczeniową O(n!) posiada algorytm, w którym wykonywana jest stała liczba operacji dla każdej permutacji n danych wejściowych.

SORTOWANIE ZWARIOWANE

0x01 graphic


0x01 graphic

0x01 graphic

SORTOWANIE PRZEZ WYBÓR

Idea algorytmu sortowania przez wybór jest bardzo prosta. Załóżmy, iż chcemy posortować zbiór liczbowy rosnąco. Zatem element najmniejszy powinien znaleźć się na pierwszej pozycji. Szukamy w zbiorze elementu najmniejszego i wymieniamy go z elementem na pierwszej pozycji. W ten sposób element najmniejszy znajdzie się na swojej docelowej pozycji.

W identyczny sposób postępujemy z resztą elementów należących do zbioru. Znów wyszukujemy element najmniejszy i zamieniamy go z elementem na drugiej pozycji. Otrzymamy dwa posortowane elementy. Procedurę kontynuujemy dla pozostałych elementów dotąd, aż wszystkie będą posortowane.

0x01 graphic

SORTOWANIE BĄBELKOWE

0x01 graphic

SORTOWANIE BĄBELKOWE WERSJA 2

0x01 graphic

SORTOWANIE BĄBELKOWE WERSJA 3

0x01 graphic

SORTOWANIE BĄBELKOWE WERSJA 4

0x01 graphic

0x01 graphic
0x01 graphic
0x01 graphic
0x01 graphic
0x01 graphic
0x01 graphic



Wyszukiwarka

Podobne podstrony:
Anatomia 5 cwiczenia, kosmetologia-wyższa szkoła fizjoterapii-wrocław
Anatomia ćwiczenia 4, kosmetologia-wyższa szkoła fizjoterapii-wrocław
badania marketingowe-cwiczenia, WSB ( WYŻSZA SZKOŁA BANKOWA), BADANIA MARKETINGOWE
tech. inf, SZKOŁA, Technologia Informacyjna
Zbiory rozmyte - zgadnienia, Szkoła, Technologia informatyczna
Technika pracy biurowej, Szkoła, Technologia informatyczna
Anatomia 5 cwiczenia, kosmetologia-wyższa szkoła fizjoterapii-wrocław
KWERENDY dod 2, Szkoła, Semestr 1, Technologia informacyjna, Ćwiczenie 6
KWERENDY dod 2, Szkoła, Semestr 1, Technologia informacyjna, Ćwiczenie 6
M3, WSFiZ Warszawa, Semestr II, Technologie informacyjne - ćwiczenia (e-learning) (Grzegorz Stanio)
dyplom, Technologie Informacyjne, word, ćwiczenia
informatyka-Radzi, Szkoła, penek, Przedmioty, Technologia informacyjna
formatowanie, Technologie Informacyjne, word, ćwiczenia
Sylabus ćwiczeń Technologie Informacyjne WNE SGGW 2011-2012, Ogrodnictwo 2011, Technologia informacy
INFORMA, Szkoła, penek, Przedmioty, Technologia informacyjna
INFORMA2, Szkoła, penek, Przedmioty, Technologia informacyjna
literowki, Technologie Informacyjne, word, ćwiczenia
Edytor rownan, Technologie Informacyjne, word, ćwiczenia

więcej podobnych podstron