ALGORYTMY I STRUKTURY DANYCH

Podobne dokumenty
KARTA MODUŁU KSZTAŁCENIA

Algorytmy i struktury danych.

Kierunek i poziom studiów: Matematyka, studia I stopnia (licencjackie), rok I

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Realizacja w roku akademickim 2016/17

PRZEWODNIK PO PRZEDMIOCIE

Literatura. 1) Pojęcia: złożoność czasowa, rząd funkcji. Aby wyznaczyć pesymistyczną złożoność czasową algorytmu należy:

ID2ZSD2 Złożone struktury danych Advanced data structures. Informatyka II stopień ogólnoakademicki stacjonarne

Kierunek: Informatyka. Przedmiot:

Algorytmy i struktury danych

IZ2ZSD2 Złożone struktury danych Advanced data structures. Informatyka II stopień ogólnoakademicki niestacjonarne

Przeglad podstawowych pojęć (3) Podstawy informatyki (3) dr inż. Sebastian Pluta. Instytut Informatyki Teoretycznej i Stosowanej

S Y L A B U S. język polski. Forma zaliczenia laboratorium 10 ZO 2 4 wykład 6 ZO Razem 16 2

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Realizacja w roku akademickim 2016/17

Algorytmy i Struktury Danych.

Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2015/2016. Forma studiów: Stacjonarne Kod kierunku: 11.

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2013/2014

Sortowanie - wybrane algorytmy

Załącznik KARTA PRZEDMIOTU. KARTA PRZEDMIOTU Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2009/2010

Opis efektów kształcenia dla modułu zajęć

Wykład 1 Wprowadzenie do algorytmów. Zawartość wykładu 1. Wstęp do algorytmów i struktur danych 2. Algorytmy z rozgałęzieniami.

KARTA KURSU. Algorytmy, struktury danych i techniki programowania. Algorithms, Data Structures and Programming Techniques

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

Instytut Ekonomiczny 9 kierunek studiów

Algorytmy przeszukiwania wzorca

Algorytmy i struktury danych - opis przedmiotu

Definicja. Ciąg wejściowy: Funkcja uporządkowująca: Sortowanie polega na: a 1, a 2,, a n-1, a n. f(a 1 ) f(a 2 ) f(a n )

Algorytmy i struktury danych Metody programowania Języki i paradygmaty programowania Nazwa jednostki prowadzącej przedmiot Instytut Matematyki

Algorytmy. Programowanie Proceduralne 1

Sortowanie danych. Jolanta Bachan. Podstawy programowania

TEORETYCZNE PODSTAWY INFORMATYKI

Analiza algorytmów zadania podstawowe

KARTA PRZEDMIOTU. Algorytmy i struktury danych, C4

Metodyki i techniki programowania

Wykład 1_2 Algorytmy sortowania tablic Sortowanie bąbelkowe

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Algorytmy i struktury danych

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.

KARTA KURSU. Kod Punktacja ECTS* 2

Algorytmika i pseudoprogramowanie

Struktury danych i złożoność obliczeniowa Wykład 2. Prof. dr hab. inż. Jan Magott

Temat: Algorytmy zachłanne

Metodyki i techniki programowania

1 TEMAT LEKCJI: 2 CELE LEKCJI: 3 METODY NAUCZANIA. Scenariusz lekcji. 2.1 Wiadomości: 2.2 Umiejętności: Scenariusz lekcji

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott

PRZEWODNIK PO PRZEDMIOCIE

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Algorytmy i struktury danych, C3

Algorytmy. Programowanie Proceduralne 1

Algorytmy i Struktury Danych.

Algorytmy sortujące. sortowanie kubełkowe, sortowanie grzebieniowe

1 TEMAT LEKCJI: 2 CELE LEKCJI: 3 METODY NAUCZANIA. Scenariusz lekcji. 2.1 Wiadomości: 2.2 Umiejętności: Scenariusz lekcji

Algorytmy i struktury danych.

Projektowanie i analiza algorytmów

Kierunek i poziom studiów: Matematyka, studia I stopnia (licencjackie), rok I

Metody Programowania

Algorytmy i złożoność obliczeniowa. Wojciech Horzelski

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

KARTA KURSU. Kod Punktacja ECTS* 2

Matematyczne Podstawy Informatyki

Algorytmy i Struktury Danych

KONSPEKT ZAJĘĆ KOŁA INFORMATYCZNEGO LUB MATEMATYCZNEGO W KLASIE III GIMNAZJUM LUB I LICEUM ( 2 GODZ.)

Wykłady specjalistyczne. (Matematyka w finansach i ekonomii; Matematyczne metody informatyki)

Scenariusz lekcji. Scenariusz lekcji 1 TEMAT LEKCJI: Algorytmy z nawrotami 2 CELE LEKCJI: 2.1 Wiadomości: 2.2 Umiejętności: 3 METODY NAUCZANIA

Strategia "dziel i zwyciężaj"

Załącznik Nr 5 do Zarz. Nr 33/11/ Kod przedmiotu:aisd2

Programowanie komputerów

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

Programowanie w VB Proste algorytmy sortowania

KARTA KURSU. Kod Punktacja ECTS* 2

znalezienia elementu w zbiorze, gdy w nim jest; dołączenia nowego elementu w odpowiednie miejsce, aby zbiór pozostał nadal uporządkowany.

Języki programowania II - opis przedmiotu

Algorytmy i struktury danych

PODSTAWY INFORMATYKI wykład 5.

PRZEWODNIK PO PRZEDMIOCIE

Projektowanie i Analiza Algorytmów

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p.

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p.

Programowanie dynamiczne i algorytmy zachłanne

Algorytmy sortujące i wyszukujące

koordynator modułu dr hab. Michał Baczyński rok akademicki 2012/2013

LABORATORIUM 7: Problem komiwojażera (TSP) cz. 2

przedmiot kierunkowy (podstawowy / kierunkowy / inny HES) obowiązkowy (obowiązkowy / nieobowiązkowy) polski semestr I

Algorytmy i struktury danych

Podstawy programowania.

Sortowanie. LABORKA Piotr Ciskowski

METODY OPISU ALGORYTMÓW KOMPUTEROWYCH

Sylabus modułu: Matematyczne podstawy informatyki (kod modułu:03-mo2n-12-mpln)

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA Pod auspicjami Polskiej Akademii Nauk Warszawa, ul. Newelska 6, tel.

prowadzący dr ADRIAN HORZYK /~horzyk tel.: Konsultacje paw. D-13/325

Sortowanie przez scalanie

Podstawy programowania

przedmiot kierunkowy (podstawowy / kierunkowy / inny HES) obowiązkowy (obowiązkowy / nieobowiązkowy) polski semestr I

Algorytmy zachłanne. dr inż. Urszula Gałązka

Zaawansowane algorytmy i struktury danych

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

KARTA PRZEDMIOTU. 1. NAZWA PRZEDMIOTU: Struktury danych i algorytmy. 2. KIERUNEK: Matematyka. 3. POZIOM STUDIÓW: I stopnia

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Wykład z Technologii Informacyjnych. Piotr Mika

Rok akademicki: 2018/2019 Kod: ITE s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

Załącznik KARTA PRZEDMIOTU. KARTA PRZEDMIOTU Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2009/2010.

Co to jest algorytm? przepis prowadzący do rozwiązania zadania, problemu,

Transkrypt:

ALGORYTMY I STRUKTURY DANYCH wykład 1 wprowadzenie, struktury sterujace, projektowanie algorytmów dr hab. inż. Andrzej Obuchowicz, prof. UZ Instytut Sterowania i Systemów Informatycznych UZ p. 425 A2 tel. 322373 e-mail: A.Obuchowicz@issi.uz.zgora.pl http:/www.issi.uz.zgora.pl

AiSD wykład 1 dr hab. inż. A. Obuchowicz, prof. UZ 1/20 Plan wykładu wprowadzenie, struktury sterujace, projektowanie algorytmów; elementarne struktury danych; sortowanie wewnętrzne; sortowanie zewnętrzne; tablice z haszowaniem, wyszukiwanie wzorca w tekście; rekurencja, zbiory, relacje, grafy;

AiSD wykład 1 dr hab. inż. A. Obuchowicz, prof. UZ 2/20 Plan wykładu, c.d. drzewa przeszukiwań binarnych i czerwono-czarne; kopce, B-drzewa; algorytmy teorio-liczbowe; algorytmy teorio-grafowe; geometria obliczeniowa; wybrane algorytmy numeryczne.

AiSD wykład 1 dr hab. inż. A. Obuchowicz, prof. UZ 3/20 Literatura Adamski T., Ogrodzki J. Algorytmy komputerowe i struktury danych, Warszawa : Oficyna Wydawnicza Politechniki Warszawskiej, 2005; Aho A.V., Hopcroft J.E., Ullman J.D. Algorytmy i struktury danych, Gliwice : Helion 2003; Banachowski L., Diks K., Rytter W. Algorytmy i struktury danych, Warszawa: WNT 1996; Cormen T.H., Leiserson C.E., Rivest R.L. Wprowadzenie do algorytmów, Warszawa: WNT 1997; Harris S., Ross J. Od podstaw algorytmy, Gliwice: Helion 2006;

AiSD wykład 1 dr hab. inż. A. Obuchowicz, prof. UZ 4/20 Kotowski P. Algorytmy + struktury danych = abstrakcyjne typy danych, Warszawa : Wyd. BTC 2006; Neapolitan R., Naimipour K. Podstawy algorytmów z przykładami w C++, Gliwice: Helion 2004; Stephens R. Algorytmy i struktury danych stosowane w Delphi 3, 4 i 5 z przykładami w Delphi, Gliwice : Helion, 2000; Wirth N. Algorytmy + struktury danych = programy, Warszawa : WNT 2002; Wróblewski P. Algorytmy, struktury danych i języki programowania, Gliwice: Helion 1997.

AiSD wykład 1 dr hab. inż. A. Obuchowicz, prof. UZ 5/20 Problem algorytmiczny Opis wszystkich poprawnych danych wejœciowych Opis oczekiwanych wyników jako funkcji danych wejœciowych

AiSD wykład 1 dr hab. inż. A. Obuchowicz, prof. UZ 6/20 Przykłady sformułowania problemów problem sortowania Dane: tablica (a 1, a 2,...,a n ) o n elementach typu porzadkowego; Szukane: tablica o tych samych elementach ale uporzadkowana niemalejaco. problem komiwojażera TSP (ang. Travelling Salesman Problem) Dane: n miast, odległości pomiędzy miastami (d ij i, j = 1, 2,...,n); Szukane: trasa komiwojażera przez wszystkie miasta (ale tylko jedna wizyta w każdym mieście permutacja miast) o najmniejszej sumie odległości.

AiSD wykład 1 dr hab. inż. A. Obuchowicz, prof. UZ 7/20 Algorytm Dowolne poprawne dane wejœciowe Algorytm - rozwi¹zanie problemu algorytmicznego Oczekiwane wyniki

AiSD wykład 1 dr hab. inż. A. Obuchowicz, prof. UZ /20 Własności algorytmu OPERACJE PODSTAWOWE KA DY KROK JEDNOZNACZNIE I PRECYZYJNIE ZDEFINIOWANY KA DY MO LIWY PRZYPADEK PRZEWIDZIANY ALGORYTM MO E KORZYSTAÆ Z DANYCH WEJŒCIOWYCH PROWADZI DO JEDNEGO LUB WIÊCEJ DANYCH WYJŒCIOWYCH ROZWI ZANIE ZAWSZE OSI GNIÊTE I TO W SKOÑCZONEJ LICZBIE KROKÓW WSKAZANA W ASNOŒÆ OGÓLNOŒCI

AiSD wykład 1 dr hab. inż. A. Obuchowicz, prof. UZ 9/20 Przykład algorytmu sortowanie babelkowe 24 24 12 14 26 69 46 12 14 24 26 26 69 46 69 12 24 14 26 69 46 14 46 24 12 14 24 26 46 69 14 12 14 24 26 46 69 12 12 14 24 26 46 69 12 14 24 26 46 69 12 14 24 26 46 69 12 14 24 26 46 69

AiSD wykład 1 dr hab. inż. A. Obuchowicz, prof. UZ 10/20 Struktury sterujace bezpośrednie następstwo; wybór warunkowy; iteracja ograniczona; iteracja warunkowa (nieograniczona); instrukcja skoku.

AiSD wykład 1 dr hab. inż. A. Obuchowicz, prof. UZ 11/20 Bezpośrednie następstwo Instrukcja A Instrukcja B Wykonaj A, a potem B

AiSD wykład 1 dr hab. inż. A. Obuchowicz, prof. UZ 12/20 Wybór warunkowy T W N T W N Instrukcja A Instrukcja A Instrukcja B Je eli spe³niony jest warunek W to wykonaj A Je eli spe³niony jest warunek W to wykonaj A, w przeciwnym wypadku wykonaj B

AiSD wykład 1 dr hab. inż. A. Obuchowicz, prof. UZ 13/20 Iteracja ograniczona k=kmin k>kmax N Instrukcja A T Dla k od kmin do kmax wykonuj A k=inc(k)

AiSD wykład 1 dr hab. inż. A. Obuchowicz, prof. UZ 14/20 Iteracja warunkowa (nieograniczona) W N Instrukcja A T Instrukcja A N W T Dopóki spe³niony jest warunek W wykonuj A (while W do A) Wykonuj A dopóki nie zostanie spe³niony warunek W (repeat A until W)

AiSD wykład 1 dr hab. inż. A. Obuchowicz, prof. UZ 15/20 Algorytm sortowania babelkowego 1. wykonaj co następuje n 1 razy: (a) wskaż pierwszy element; (b) wykonaj co następuje n 1 razy: i. porównaj wskazany element z elementem następnym; ii. jeśli porównane elementy sa w niewłaściwej kolejności, zamień je miejscami; iii. wskaż następny element.

AiSD wykład 1 dr hab. inż. A. Obuchowicz, prof. UZ 16/20 Schemat blokowy algorytmu babelkowego START n,(a[i] i=1,...,n) i=1 i>n-1 T n,(a[i] i=1,...,n) i=i+1 N j=i STOP T j>n-1 N a(j)> a(j+1) T x=a(j+1) a(j+1)=a(j) a(j)=x N j=j+1

AiSD wykład 1 dr hab. inż. A. Obuchowicz, prof. UZ 17/20 Przykłady metod układania algorytmów metoda dziel i zwyciężaj : problem rozmiaru n dzielimy na podproblemy mniejszych rozmiarów, w taki sposób, że z ich rozwiazań wynika rozwiazanie zasadnicze; programowanie dynamiczne: poprawia powyższa metodę w sytuacjach, kiedy wymaga wielokrotnego liczenia rozwiazań tych samych problemów; metoda zachłanna: w przypadku poszukiwania najlepszego rozwiazania spośród znacznej liczby (wykładniczej) możliwych realizacji, staramy się uporzadkować proces poszukiwania tak, aby w sensownym czasie znaleść możliwie najlepsze rozwiazanie (niekoniecznie optymalne).

AiSD wykład 1 dr hab. inż. A. Obuchowicz, prof. UZ 1/20 Przykład metody dziel i zwyciężaj : BS Acki Backi Cacki Dacki Ecki Fecki Gecki Hecki Icki Kicki Licki Micki Nicki Ecki=Ecki Ecki<Fecki Ecki>Dacki Ecki<Gecki

AiSD wykład 1 dr hab. inż. A. Obuchowicz, prof. UZ 19/20 Przykład programowania dynamicznego: ( ) n k 5 4 3 2 0 3 1 2 2 4 3 1 1 0 1 1 2 1 0 1 2 2 2 1 1 3 2 1 0 1 2 3 3 3 2 2 1 1 1 n k = n 1 k + n 1 k 1, n 0 = 1, n n = 1 2 3 4 5 0 0 0 0 0 1 2 3 4 5 1 1 1 1 1 2 3 4 5 2 2 2 2 3 4 5 3 3 3

AiSD wykład 1 dr hab. inż. A. Obuchowicz, prof. UZ 20/20 Przykład metody zachlannej: problem plecakowy Problem: Dany jest zbiór n elementów S = (s i, c i, w i ) n i=1, gdzie każdy element s i posiada swoja wartość c i i wagę w i. Należy zapakować plecak o maksymalnej nośności W (tzn. powyżej tej wagi podrze się) elementami ze zbioru S, tak aby wartość zawartości plecaka była jak największa. Możliwe strategie: przeglad wszystkich możliwych realizacji (jest ich 2 n ); najpierw najwartościowsze; najpierw najlżejsze; najpierw o najwyższym stosunku c i w i.