Katedra Elektrotechniki Teoretycznej i Informatyki. sem. II - Elementy algorytmów. Dr hab. inż. M. Czyżak
|
|
- Iwona Lewicka
- 7 lat temu
- Przeglądów:
Transkrypt
1 Katedra Elektrotechniki Teoretycznej i Informatyki sem. II - Elementy algorytmów Dr hab. inż. M. Czyżak
2 REGULAMIN zaliczeń i wystawiania ocen z przedmiotu Informatyka II realizowanych w Katedrze Elektrotechniki Teoretycznej i Informatyki na studiach stacjonarnych I stopnia na kierunku Elektrotechnika w sem. III, 2016/ Obecność studentów na wykładach i laboratorium jest obowiązkowa. 2. Na wykładzie i laboratorium obecność jest kontrolowana. W przypadku stwierdzenia 3 krotnej nieusprawiedliwionej nieobecności na laboratorium, student jest skreślany z listy uczestniczących w laboratorium i nie jest klasyfikowany. 3. Podczas semestru 2 krotnie przeprowadzane jest kolokwium na laboratorium (90 min) zgodnie z podanym harmonogramem laboratorium.
3 4. W przypadku usprawiedliwionej nieobecności na kolokwium, potwierdzonej zwolnieniem lekarskim, student jest zobowiązany w terminie 2 tygodni od daty zakończenia zwolnienia odrobić kolokwium w godzinach konsultacji. W przypadku nieobecności nieusprawiedliwionej lub nie odrobienia w podanym terminie usprawiedliwionej nieobecności na kolokwium, student otrzymuje 0 punktów z kolokwium. 5. Zaliczenie laboratorium następuje w oparciu o ilość punktów uzyskanych przez studenta. Podział punktów dla laboratorium na poszczególne elementy jest następujący: - kolokwia 60 pkt ( 2 x 30 pkt) - wejściówki 20 pkt - zadania domowe 20 pkt Zaliczenie laboratorium wymaga 60 pkt, konieczne jest też uzyskanie przynajmniej 30 pkt łącznie z kolokwiów. Zadania domowe należy oddać w terminie dwóch tygodni. Prowadzący zajęcia laboratoryjne wystawia oceny punktowe.
4 6. Zaliczenie części wykładowej następuje w oparciu o kolokwium organizowane na koniec semestru, prace domowe oraz obecność na wykładzie (80 pkt kolokwium, 20 pkt prace domowe). Student może dodatkowo uzyskać 10 pkt za zadania wykonywane na wykładzie (1 pkt za jedno zadanie, w przypadku niepoprawnego wykonania zadania 0.5 pkt). Zaliczenie części wykładowej wymaga uzyskania 60 pkt w tym przynajmniej 41 pkt z kolokwium wykładowego) 7. Na zakończenie zajęć w semestrze oblicza się końcową punktową ocenę każdego studenta, wg wzoru: Z 0.66* L 0.34* W gdzie: L ocena punktowa uzyskana z części laboratoryjnej, W ocena punktowa uzyskana z części wykładowej.
5 8. Ocenę końcową wystawia się wg progów punktowych przedstawionych w tabeli: Progi punktowe poniżej 60 Ocena niedostateczna dostateczna dość dobra dobra ponad dobra powyżej 88 bardzo dobra
6 9. Prowadzący laboratorium organizuje dodatkowe kolokwium zaliczające laboratorium bezpośrednio przed sesją podstawową oraz kolokwium zaliczające w sesji poprawkowej. W wyniku każdego z tych kolokwiów student może otrzymać połowę maksymalnej ilości punktów z kolokwiów czyli 30 pkt. 10. Dla studentów, którzy nie uzyskali wymaganego minimum punktów z kolokwium zaliczającego wykład, organizowane jest kolokwium poprawkowe z części wykładowej w sesji poprawkowej. 11. W wyniku kolokwium poprawkowego z części wykładowej można uzyskać tylko połowę maksymalnej liczby punktów, czyli 40 pkt. 12. Obliczanie ocen po sesji poprawkowej odbywa się z uwzględnieniem wyniku kolokwium poprawkowego oraz pozostałych elementów składających się na część laboratoryjną i wykładową.
7 Algorytm jest jednym z zasadniczych pojęć w informatyce. Dział nauki zajmujący się algorytmami jest określany jako "Teoria algorytmów", "Analiza algorytmów" czy też "Algorytmika". Algorytm ( nieformalne określenie) 1. Algorytm jest przepisem określającym krok po kroku rozwiązanie jakiegoś problemu lub też osiągnięcie pewnego celu.
8 2. Algorytm jest pewną ściśle określoną procedurą obliczeniową, która dla właściwych danych wejściowych, wytwarza dane wyjściowe zwane wynikiem działania algorytmu. Algorytm można też traktować jako sposób rozwiązania konkretnego problemu obliczeniowego. Postawienie takiego problemu polega na ustaleniu wymagań, co do relacji między danymi wejściowymi algorytmu, a danymi wyjściowymi, a algorytm opisuje procedurę obliczeniową, która zapewni, że relacja ta będzie osiągnięta.
9 Problemy, które można rozpatrywać w aspekcie ich rozwiązywania z użyciem algorytmów, można podzielić na następujące grupy: a) problemy niealgorytmiczne - wykazano, że nie mogą być rozwiązane za pomocą algorytmów w skończonym czasie Przykład 1. Pokrywanie powierzchni wielokątami o dowolnym kształcie. Wykazano, że to zadanie jest obliczeniowo nierozwiązywalne. Przykład 2. Rozwiązywanie równań diofantycznych x n y n z n Dla n=2 nieskończenie wiele rozwiązań w liczbach całkowitych, brak rozwiązań dla n>2.
10 b) problemy przypuszczalnie niealgorytmiczne - zadania dla których nie udało się znaleźć algorytmu o skończonym czasie działania, ale też nie udowodniono, że taki algorytm nie istnieje (nie mogą być rozwiązane za pomocą algorytmów w skończonym czasie) c) problemy wykładnicze - nie mają algorytmów ograniczonych przez wielomian zmiennej problemu ( np. n!)
11 d) problemy przypuszczalnie wykładnicze - nie udało się podać algorytmu wielomianowego, ale też nie udowodniono że nie ma takiego algorytmu. d) problemy wielomianowe - dla problemów tych istnieją algorytmy rozwiązujące je w czasie ograniczonym wielomianem zmiennej problemu. Kubale, M. Łagodne wprowadzenie do analizy algorytmów, Wyd. PG, 1999.
12 Słowo algorytm pochodzi od nazwiska matematyka arabskiego żyjącego w IX wieku Abu Ja'far Mohammed ibn Müsâ al Khowârizmî ( al Khorezmi, (ar.) z Chorezmu), nazwisko jego pisano w Europie jako Algorismus. Podał on w IX wieku reguły dodawania, odejmowania, mnożenia i dzielenia liczb dziesiętnych znane wcześniej w Indiach i Chinach.
13 Jednak za autora pierwszego algorytmu uważa się greckiego matematyka Euklidesa ( 365 p.n.e- 300 p.n.e), stworzył on słynny przepis na obliczanie największego wspólnego dzielnika dwóch liczb całkowitych a i b ( NWD, gcd - ang. greatest common divisor)
14 Algorytm Euklidesa - obliczanie gcd (a,b) gcd(a,0)=0 Dopóki b>0 wykonuj 1. c=a modulo b 2. a=b 3. b=c 4. gcd=a Operacja = oznacza, podobnie jak w języku C, podstawienie do zmiennej po lewej stronie, wartości wyrażenia po prawej stronie.
15 Przykład. Zastosowanie algorytmu Euklidesa dla a=30, b=21. I. II. III. 1. c=9 1. c=3 1. c=0 2. a=21 2. a=9 2. a=3 3. b=9 3. b=3 3. b=0 4. gcd=21 4. gcd=9 4. gcd=3 b>0 b>0 b=0, stop
16 1. Opis słowny Sposoby opisu (zapisu algorytmów) cz.1 2. Opis w postaci listy kolejnych kroków 3. Opis w języku programowania ( Pascal, C/C++) 4. Opis w postaci schematu blokowego Przykład. Opis słowny Algorytmy Cel działania algorytmu: algorytm sprawdza czy dana liczba naturalna N jest liczbą pierwszą. Realizacja algorytmu (algorytm): algorytm oblicza całkowitą resztę z dzielenia N przez kolejne liczby nieparzyste mniejsze lub równe N. Jeśli jakaś reszta jest równa zeru, algorytm przerywa działanie.
17 Sposoby opisu (zapisu algorytmów) cz.2 2. Opis w postaci listy kolejnych kroków Przykład. Zapis algorytmu Euklidesa w postaci listy kroków. Dane: Liczby całkowite a i b. Wynik: Największy wspólny dzielnik a i b, gcd(a,b). 1. Wczytaj a. 2. Wczytaj b. 3. Jeśli b=0, idź do kroku Oblicz c=a modulo b. 5. Wykonaj a=b. 6. Wykonaj b=c.
18 Sposoby opisu (zapisu algorytmów) cz.3 Przykład. Zapis algorytmu Euklidesa w postaci listy kroków ( cz. II). 7. Wykonaj gcd=a. 8. Jeśli b=0, idź do kroku Idź do kroku gcd= Drukuj a, b, gcd. 12. STOP.
19 Sposoby opisu (zapisu algorytmów) cz.4 Przykład. Zapis algorytmu Euklidesa w postaci programu int main() { int a=30,b=21,c,gcd; do { c=a%b; a=b; b=c; gcd=a; } while ( b>0); printf("\n a=%d b=%d gcd=%d ",a,b,gcd); }
20 Sposoby opisu (zapisu algorytmów) cz.5 Sieci działań ( schematy blokowe) Autorem tej koncepcji jest John von Neumann. Zaproponował on w latach 50-tych formalizację algorytmów przy użyciu sieci działań. Sieci działań są geometrycznym sposobem zapisu algorytmów. Podstawą tej koncepcji jest podzielenie procesu rozwiązania na odrębne etapy, które w sieci działań przedstawia się w postaci bloków. Bloki są prostymi figurami geometrycznymi.
21 Sposoby opisu (zapisu algorytmów) cz.6 Sieci działań ( schematy blokowe) Wewnątrz bloków umieszcza się rodzaj czynności, którą symbolizuje dany blok. Bloki łączy się liniami, które ukazują ich powiązania logiczne, a strzałki wskazują na kolejność wykonywania poszczególnych w algorytmie. Algorytm przedstawiony w postaci sieci działań jest niezależny od języka programowania, w którym będzie napisany program.
22 Sposoby opisu (zapisu algorytmów) cz.7 Sieci działań ( schematy blokowe) Sieci działań mogą być pisane na różnym poziomie szczegółowości, lecz zwykle przyjmuje się, że każdy blok odpowiada jednej instrukcji programu realizującej pewne obliczenie lub instrukcji, która umożliwia podjęcie decyzji w algorytmie odnośnie dalszej jego realizacji.
23 Sposoby opisu (zapisu algorytmów) cz.8 Sieci działań ( schematy blokowe) Wewnątrz bloków sieci działań można stosować następujące symbole: - litery alfabetu łacińskiego i greckiego - cyfry systemu dziesiętnego - symbole działań arytmetycznych - dodawanie + - odejmowanie -,
24 Sposoby opisu (zapisu algorytmów) cz.9 Sieci działań ( schematy blokowe) - symbole działań arytmetycznych (c.d.) - mnożenie lub - dzielenie / - dzielenie całkowite - potęgowanie - pierwiastkowanie
25 Sposoby opisu (zapisu algorytmów) cz.10 Sieci działań ( schematy blokowe) - symbole działań logicznych - negacja ~ - koniunkcja - alternatywa
26 Sposoby opisu (zapisu algorytmów) cz.11 Sieci działań ( schematy blokowe) - symbole relacji - symbol podstawienia, : = - znaki interpunkcyjne,,,,, Wewnątrz bloków sieci działań można ponadto stosować liczby całkowite, rzeczywiste, zespolone jednak o wielkości odpowiadającej wielkości typów dla komputera, na którym będzie realizowany algorytm.
27 Sposoby opisu (zapisu algorytmów) cz.12 Sieci działań ( schematy blokowe) - stałe logiczne - stałe tekstowe - zmienne i wskaźniki do zmiennych (użycie zmiennej wskazuje, że będzie istniała komórka pamięci, o nazwie takiej, jak nazwa zmiennej)
28 Sposoby opisu (zapisu algorytmów) cz.13 Sieci działań ( schematy blokowe) - wyrażenia arytmetyczne i logiczne - funkcje ( wykładnicze, logarytmiczne, trygonometryczne, cyklometryczne, hiperboliczne i odwrotne do nich) - wartość bezwzględna - część całkowita
29 Sposoby opisu (zapisu algorytmów) cz.14 Sieci działań ( schematy blokowe) Symbole geometryczne - początek algorytmu START - koniec algorytmu STOP
30 Sposoby opisu (zapisu algorytmów) cz.15 Sieci działań ( schematy blokowe) Operator - działanie (operacja do wykonania) Operator wejścia/wyjścia wprowadzanie lub wyprowadzanie danych Operator - element decyzyjny- wybór jednej z dróg działania
31 Sposoby opisu (zapisu algorytmów) cz.16 Sieci działań ( schematy blokowe) Łącznik - łączy dwie części algorytmu Linia - łącząca poszczególne symbole sieci działań
32 Struktura algorytmów (cz.1) Opis algorytmu w postaci sieci działań wymaga zwykle niewielu podstawowych elementów takich jak - sekwencja operacji - przełącznik - pętla
33 Struktura algorytmów (cz.2) Sekwencja operacji Sekwencja operacji stanowi zbiór operacji realizowanych w określonej kolejności na określonych danych. Przykład. Realizacja obliczenia y ( c ( a b) 2 ) d
34 Struktura algorytmów (cz.3) wyznacz a+b wyznacz (a+b) 2 dane a,b,c,d y <- a+b y <-y*y dane a,b,c,d wyznacz c+(a+b) 2 y <-y+c wyznacz (c+(a+b) 2 )d y <-y*c
35 Struktura algorytmów (cz.4) Przełącznik Przełącznik jest elementem sprawdzającym spełnienie określonego warunku i wybierającego jedną z dwóch alternatywnych sekwencji operacji w zależności od tego czy warunek jest spełniony czy też nie. Przykład. TAK a>0 NIE Sekwencja 1 Sekwencja 2
36 Struktura algorytmów (cz.4) Pętla Pętla jest elementem umożliwiającą kolejną, wielokrotną realizację określonej operacji lub sekwencji operacji.
37 Ogólna struktura pętli Część inicjacyjna Część główna Część aktualizująca warunek Część decyzyjna Część wyjściowa
38 Przykład. Sieć działań dla obliczania sumy (cz. 1) S n 1 i 1 1 i
39 Przykład. Sieć działań dla obliczania sumy (cz. 2) START s<-0 s<-s+1/i i<-i+1 TAK i<n Drukuj s NIE STOP
40 Nauka o algorytmach to teoria algorytmów zwana też analizą algorytmów. Zajmuje się ona szukaniem najlepszych algorytmów dla rozwiązywania określonych zadań na komputerach, badaniem możliwości rozwiązania pewnych zadań jak również określaniem złożoności rozwiązań, o ile one istnieją.
41 Przykłady algorytmów (1) I. Algorytmy numeryczne 1. Interpolacja Lagrange a. 2. Interpolacja Aitkena-Lagrange a. 3. Aproksymacja wielomianowa. 4. Aproksymacja trygonometryczna. 5. Kwadratura Newtona-Cotesa. 6. Metoda całkowania Romberga. 7. Metoda rozwiązywania równań nieliniowych (bisekcja, metoda siecznych, metoda Newtona).
42 8. Rozwiązywanie układu równań z macierzą trójkątną. 9. Metoda eliminacji Gaussa. 10. Rozkład LU. Przykłady algorytmów (2) 11. Metoda Gaussa-Crouta. 12. Metoda eliminacji Jordana. 13. Obliczanie wyznacznika metodą rozkładu LU. 14. Odwracanie macierzy przy użyciu rozkładu LU. 15. Metoda Jacobiego rozwiązywania układu równań liniowych.
43 Przykłady algorytmów (3) 16. Metoda Gaussa-Seidela. 17. Rozkład QR macierzy metodą Grama-Schmidta. 18. Rozkład QR macierzy metodą Givensa. 19. Schemat Hornera obliczania wartości wielomianu. 20. Metoda relaksacyjna rozwiązywania układu równań liniowych. 21. Metoda Eulera rozwiązywania równań różniczkowych zwyczajnych. 22. Metoda Runge-Kutty rozwiązywania równań różniczkowych zwyczajnych. 23. Szybka transformacja Fouriera.
44 Przykłady algorytmów (4) II. Algorytmy przeszukiwania zbiorów danych 1. Przeszukiwanie binarne. 2. Przeszukiwanie z funkcją mieszającą. III.Algorytmy przeszukiwania tekstów. 1. Algorytm typu brute-force. 2. Algorytm K-M-P (Knutha, Morrisa, Pratta). 3. Algorytm Boyera-Moore a. 4. Algorytm Rabina-Karpa.
45 Przykłady algorytmów (5) IV. Algorytmy grafowe 1. Algorytm Floyda-Warshalla ( domknięcie przechodnie grafu, algorytm pozwala stwierdzić, czy istnieje droga między dwoma wierzchołkami grafu). 2. Algorytm Dijkstry (poszukiwanie najkrótszej drogi w grafie). 3. Algorytmy przeszukiwania grafów ( wszerz, w głąb) V. Algorytmy kompresji danych 1. Kompresja przez modelowanie matematyczne. 2. Kompresja metodą RLE. 3. Kompresja danych metodą Huffmana. 4. Kompresja LZW. Algorytmy
46 Przykłady algorytmów (6) VI. Algorytmy szyfrowania 1. Algorytm wymiany klucza Diffiego-Hellmana. 2. Algorytm RSA 3.Algorytm Rijndael. VII. Algorytmy teorioliczbowe (przykłady) 1. Obliczanie iloczynu Mongomery ego 2. Potęgowanie modulo n (n nieparzyste) z użyciem iloczynu Mongomery ego. 3. Chińskie twierdzenie o resztach.
47 Przykłady algorytmów (7) VIII. Algorytmy sortowania. 1. Sortowanie przez zamianę ( ang. exchange sort) ( przykład: sortowanie przez prostą zamianę). 2. Sortowanie przez wybieranie (ang. selection sort) (przykład sortowanie przez proste wybieranie) 3. Sortowanie przez proste wstawianie. 4. Sortowanie szybkie (ang. quicksort). 5. Sortowanie przez kopcowanie (ang. heapsort). 6. Sortowanie przez scalanie( ang. mergesort).
48 Sortowanie Sortowanie jest procesem ustawiania zbioru obiektów w określonym porządku. Sortowanie stosuje się w celu ułatwienia późniejszego wyszukiwania elementów sortowanego zbioru. Problem sortowania można sformułować następująco: Dane są obiekty a 1, a,..., 2 a n
49 Sortowanie (niemalejąco) polega na przestawianiu tych obiektów aż do chwili osiągnięcia uporządkowania a k a,..., 1 k2, a k 3 takiego, że dla danej funkcji porządkującej f zachodzi związek: f ( a ) f ( a )... f ( a k1 k2 k 3 )
50 Zwykle nie oblicza się wartości funkcji porządkującej, lecz przechowuje się je w jawnej postaci jako składowe każdego obiektu. Wartość tej funkcji nazywana jest kluczem obiektu. Dla tablic kluczem obiektu jest wartość elementu.
51 Przykłady algorytmów (5) IV. Algorytmy sortowania. 1. Sortowanie przez zamianę ( ang. exchange sort) ( przykład: sortowanie przez prostą zamianę). 2. Sortowanie przez wybieranie (ang. selection sort) ( przykład sortowanie przez proste wybieranie) 3. Sortowanie przez proste wstawianie. 4. Sortowanie szybkie (ang. quicksort). 5. Sortowanie przez kopcowanie (ang. heapsort) 6. Sortowanie przez scalanie ( ang. merge sort)
52 Sortowanie przez prostą zamianę ( sortowanie bąbelkowe) Metoda ta polega na porównywaniu w kolejnych przebiegach kluczy kolejnych sąsiadujących elementów (dla tablic wartości elementów tablicy) i ewentualnej zamianie miejscami tych elementów, jeżeli nie spełniają zadanej relacji. Po zakończeniu danego przebiegu następuje sprawdzenie czy nastąpiły w nim zamiany. Jeśli tak, realizowany jest kolejny przebieg, jeśli nie, to sortowanie zostało zakończone.
53 Sortowanie przez prostą zamianę (sortowanie bąbelkowe) Przykład. Posortować niemalejąco tablicę 5-elementową zawierającą elementy 8,6,10,2,1. Pokazane zostaną poniżej stany tablicy w kolejnych przebiegach. I. przebieg II. przebieg III. przebieg IV. przebieg V. przebieg 8,6,10,2,1 6,8,2,1,10 6,2,1,8,10 2,1,6,8,10 1,2,6,8,10 6,8,10,2,1 6,8,2,1,10 2,6,1,8,10 1,2,6,8,10 1,2,6,8,10 6,8,10,2,1 6,2,8,1,10 2,1,6,8,10 1,2,6,8,10 1,2,6,8,10 6,8,2,10,1 6,2,1,8,10 2,1,6,8,10 1,2,6,8,10 1,2,6,8,10 6,8,2,1,10 6,2,1,8,10 2,1,6,8,10 1,2,6,8,10 1,2,6,8,10
54 Sortowanie przez prostą zamianę (bąbelkowe) #define N 5 // sortowanie niemalejąco #include <stdio.h> #include <conio.h> int main(int argc, char **argv) { int i, nr=1,p, zam; int a[5]={8,6,10,2,1}; do { zam=0; printf("\n przebieg nr=%d",nr++); for (i=0;i<n -1;i++) if (a[i+1]<a[i]) { p=a[i]; a[i]=a[i+1]; a[i+1]=p; zam=1; } } while (zam); printf("\n Stan tablicy po sortowaniu"); for (i=0;i<n;i++) printf("\n % d ",a[i]); getchar(); return 0;}
55 Sortowanie przez proste wybieranie Metodę tę można opisać następująco:( sortowanie niemalejąco) - wybrać element o najmniejszym kluczu ( dla tablic element o najmniejszej wartości) - wymienić go z pierwszym elementem. Operacje te powtarza się z pozostałymi n-1 obiektami, następnie z n-2 obiektami, aż pozostanie jeden obiekt - największy.
56 Przykład. Posortować niemalejąco przy użyciu algorytmu prostego wybierania tablicę 5- elementową przy użyciu zawierającą elementy 8,6,10,2,1. Pokazane zostaną poniżej kolejne stany tablicy w trakcie sortowania zamieniane elementy 8 i 1 stan po pierwszej zamianie zamieniane elementy 6 i stan po drugiej zamianie zamieniane elementy 10 i stan po trzeciej zamianie zamieniane elementy 8 i tablica posortowana
57 // Sortowanie przez proste wybieranie #define N 5 #include <stdio.h> #include <conio.h> int main(int argc, char **argv) { int i,j,k,p,amin; int a[5]={8,6,10,2,1}; for (i=0;i<n;i++) { amin=a[i]; k=i; for (j=i+1;j<n-1;j++) if (a[j]<amin) { amin=a[j]; k=j; } if (k!=i) { p=a[i]; a[i]=a[k]; a[k]=p; } } printf("\n Stan tablicy po sortowaniu"); for (i=0;i<n;i++) printf("\n % d ",a[i]); getchar(); return 0;}
58 Podstawowe własności algorytmów a) własność stopu b) poprawność Def. (poprawność algorytmu) Algorytm jest poprawny, gdy dla każdego egzemplarza problemu zatrzymuje się i daje poprawny wynik. c) stabilność numeryczna d) złożoność obliczeniowa
59 Elementy analizy algorytmów Analiza algorytmu (analiza złożoności obliczeniowej) polega na określeniu zasobów, jakie są potrzebne do jego wykonania. Zasobami zasadniczymi są czas obliczeń i wielkość potrzebnej pamięci. Obecnie ważniejszym parametrem jest czas obliczeń. Zwykle rozpatruje się przypadek pesymistyczny dla czasu działania algorytmu.
60 Pesymistyczny czas działania jest górną granicą możliwego czasu działania algorytmu dla każdych danych wejściowych. Znając ten czas, mamy gwarancję, że algorytm nie będzie działał dłużej (taki czas może często występować w praktyce, np. przy poszukiwaniu w bazie danych informacji, której tam nie ma).
61 Czas działania algorytmu może być opisany pewną funkcją np. t = f(n)=an 2 +bn +c, gdzie n reprezentuje rozmiar danych wejściowych. Można zauważyć, że dla dużych n znaczenie ma głównie pierwszy składnik. Przyjmując przykładowo a=1, b=1, c=1 n an 2 bn c t
62 Pojawia się tutaj pojęcie rzędu wielkości funkcji. Rząd wielkości funkcji określa jak zmienia się składnik najbardziej istotny. Uważa się, że dany algorytm jest lepszy, jeśli jego pesymistyczny czas działania jest funkcją niższego rzędu.
63 Przykład. Dla funkcji f(n) i czasu z poniższej tabeli wyznaczyć największy rozmiar problemu, który może być rozwiązany w czasie t, zakładając, że algorytm działa w ciągu f(n) mikrosekund. f(n) n 1 sek 1 min 1 dzień 1 miesiąc log n n n n log n n 2 n 3 2 n n!
64 Symbol Algorytmy Notacje asymptotyczne (1) Niech g:r * R * będzie funkcją rzeczywistą zmiennej n. Mówimy, że funkcja jest (g(n)), gdy istnieją stałe c 1,, c 2 R * i x 0 R * takie, że c 1 g(n) f(n)) c 2 g(n) dla wszystkich n n 0. Mówimy wówczas,że funkcje są tego samego rzędu. (log n) - logarytmiczna (n) - liniowa c 1 g(n) f(n) (n log n) - logarytmiczno-liniowa c 2 g(n) (n 2 ) - kwadratowa (2 n ) - wykładnicza n 0 n
65 Symbol O( ) Algorytmy Notacje asymptotyczne (2) Niech g:r * R * będzie funkcją rzeczywistą zmiennej n. Przez O(g) oznaczymy zbiór funkcji f:r * R *, takich, że dla pewnego c R * i x 0 R * mamy f(n)) c g(n) dla wszystkich n n. } Symbol O(g) 0 czytamy " O duże od n", zaś o funkcji f mówimy, "że jest duże O od g" c 1 g(n) f(n) n
66 Rząd złożoności obliczeniowej Klasa funkcji Typ funkcji Przykłady subliniowa stała (e -n sin 2 n), (1/n) polilogarytmiczna (log log n), (log 2 n) liniowa (n), (n(1+n) n ) wielomianowa quasi-liniowa (n log n), (n loglog n) kwadratowa superwielomianowa (n 2 ), (n/2) (n log n ), () niewielomianowa wykładnicza (2 n ), (n 2 3 n ) n n superwykładnicza ( 2 ), (n n )
67 Złożoność obliczeniowa a programowanie algorytmów Generalnie powinno się stosować algorytmy o możliwie najmniejszej złożoności obliczeniowej, lecz w praktyce powinno się też uwzględnić dodatkowe czynniki: 1. Gdy program będzie używany niewiele razy, to koszt napisania i uruchomienia programu jest większy od pozostałych kosztów. 2. Jeśli program będzie wykonywany na małych danych, istotna jest wielkość stałej proporcjonalności c. 3. Program nie powinien być skomplikowany ( o ile to możliwe), gdyż utrudnia to wprowadzanie zmian 4. Istnieją algorytmy o dużej złożoności dla najgorszego przypadku, a działające szybko dla przypadku przeciętnego. 5. Dla algorytmów działających na liczbach rzeczywistych są ważne dokładność, a także wrażliwość numeryczna. Żródło Kubale M. Łagodne wprowadzenie do algorytmów.
Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 3. Karol Tarnowski A-1 p.
Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Co to jest algorytm? Zapis algorytmów Algorytmy
Bardziej szczegółowoZaawansowane algorytmy i struktury danych
Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań teoretycznych z egzaminów. Strona 1 z 12 Pytania teoretyczne z egzaminu pisemnego z 25 czerwca 2014 (studia dzienne)
Bardziej szczegółowoDefinicje. Algorytm to:
Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi
Bardziej szczegółowoAlgorytm. a programowanie -
Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik
Bardziej szczegółowoMetody numeryczne Wykład 4
Metody numeryczne Wykład 4 Dr inż. Michał Łanczont Instytut Elektrotechniki i Elektrotechnologii E419, tel. 4293, m.lanczont@pollub.pl, http://m.lanczont.pollub.pl Zakres wykładu Metody skończone rozwiązywania
Bardziej szczegółowoPodstawowe algorytmy i ich implementacje w C. Wykład 9
Wstęp do programowania 1 Podstawowe algorytmy i ich implementacje w C Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 9 Element minimalny i maksymalny zbioru Element minimalny
Bardziej szczegółowodr inż. Damian Słota Gliwice r. Instytut Matematyki Politechnika Śląska
Program wykładów z metod numerycznych na semestrze V stacjonarnych studiów stopnia I Podstawowe pojęcia metod numerycznych: zadanie numeryczne, algorytm. Analiza błędów: błąd bezwzględny i względny, przenoszenie
Bardziej szczegółowoAlgorytm. Krótka historia algorytmów
Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne
Bardziej szczegółowo1 Wprowadzenie do algorytmiki
Teoretyczne podstawy informatyki - ćwiczenia: Prowadzący: dr inż. Dariusz W Brzeziński 1 Wprowadzenie do algorytmiki 1.1 Algorytm 1. Skończony, uporządkowany ciąg precyzyjnie i zrozumiale opisanych czynności
Bardziej szczegółowoZasady analizy algorytmów
Zasady analizy algorytmów A więc dziś w programie: - Kilka ważnych definicji i opisów formalnych - Złożoność: czasowa i pamięciowa - Kategorie problemów - Jakieś przykłady Problem: Zadanie możliwe do rozwiązania
Bardziej szczegółowoPodstawy Programowania Algorytmy i programowanie
Podstawy Programowania Algorytmy i programowanie Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Algorytm Algorytm w matematyce, informatyce, fizyce, itp. lub innej dziedzinie życia,
Bardziej szczegółowoWykład 2. Poprawność algorytmów
Wykład 2 Poprawność algorytmów 1 Przegląd Ø Poprawność algorytmów Ø Podstawy matematyczne: Przyrost funkcji i notacje asymptotyczne Sumowanie szeregów Indukcja matematyczna 2 Poprawność algorytmów Ø Algorytm
Bardziej szczegółowoDefinicja. 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 )
SORTOWANIE 1 SORTOWANIE Proces ustawiania zbioru elementów w określonym porządku. Stosuje się w celu ułatwienia późniejszego wyszukiwania elementów sortowanego zbioru. 2 Definicja Ciąg wejściowy: a 1,
Bardziej szczegółowoWstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 1 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan wykładów (1) Algorytmy i programy Proste typy danych Rozgałęzienia
Bardziej szczegółowoAlgorytmy komputerowe. dr inŝ. Jarosław Forenc
Rok akademicki 2009/2010, Wykład nr 8 2/24 Plan wykładu nr 8 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2009/2010
Bardziej szczegółowoTechnologie Informacyjne
POLITECHNIKA KRAKOWSKA - WIEiK - KATEDRA AUTOMATYKI Technologie Informacyjne www.pk.edu.pl/~zk/ti_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 3: Wprowadzenie do algorytmów i ich
Bardziej szczegółowoWykład z Technologii Informacyjnych. Piotr Mika
Wykład z Technologii Informacyjnych Piotr Mika Uniwersalna forma graficznego zapisu algorytmów Schemat blokowy zbiór bloków, powiązanych ze sobą liniami zorientowanymi. Jest to rodzaj grafu, którego węzły
Bardziej szczegółowoPodstawy Informatyki. Sprawność algorytmów
Podstawy Informatyki Sprawność algorytmów Sprawność algorytmów Kryteria oceny oszczędności Miara złożoności rozmiaru pamięci (złożoność pamięciowa): Liczba zmiennych + liczba i rozmiar struktur danych
Bardziej szczegółowoMetody numeryczne Numerical methods. Elektrotechnika I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)
Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Nazwa modułu w języku angielskim Obowiązuje od roku akademickiego 2012/13
Bardziej szczegółowoMetody numeryczne Numerical methods. Elektrotechnika I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)
KARTA MODUŁU / KARTA PRZEDMIOTU Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. Kod modułu Nazwa modułu Nazwa modułu w języku angielskim Obowiązuje od roku akademickiego 2012/2013
Bardziej szczegółowoAnaliza algorytmów zadania podstawowe
Analiza algorytmów zadania podstawowe Zadanie 1 Zliczanie Zliczaj(n) 1 r 0 2 for i 1 to n 1 3 do for j i + 1 to n 4 do for k 1 to j 5 do r r + 1 6 return r 0 Jaka wartość zostanie zwrócona przez powyższą
Bardziej szczegółowoAlgorytmy i złożoność obliczeniowa. Wojciech Horzelski
Algorytmy i złożoność obliczeniowa Wojciech Horzelski 1 Tematyka wykładu Ø Ø Ø Ø Ø Wprowadzenie Poprawność algorytmów (elementy analizy algorytmów) Wyszukiwanie Sortowanie Elementarne i abstrakcyjne struktury
Bardziej szczegółowoAlgorytmy i struktury danych
Algorytmy i struktury danych Proste algorytmy sortowania Witold Marańda maranda@dmcs.p.lodz.pl 1 Pojęcie sortowania Sortowaniem nazywa się proces ustawiania zbioru obiektów w określonym porządku Sortowanie
Bardziej szczegółowoMatematyczne Podstawy Informatyki
Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Algorytm 1. Termin algorytm jest używany w informatyce
Bardziej szczegółowoINFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227
INFORMATYKA W SZKOLE Dr inż. Grażyna KRUPIŃSKA grazyna@fis.agh.edu.pl D-10 pokój 227 Podyplomowe Studia Pedagogiczne 2 Algorytmy Nazwa algorytm wywodzi się od nazwiska perskiego matematyka Muhamed ibn
Bardziej szczegółowoKatedra Elektrotechniki Teoretycznej i Informatyki. sem. III. Dr inż. M. Czyżak
Katedra Elektrotechniki Teoretycznej i Informatyki sem. III Dr inż. M. Czyżak REGULAMIN zaliczeń i wystawiania ocen z przedmiotu Informatyka realizowanych w Katedrze Elektrotechniki Teoretycznej i Informatyki
Bardziej szczegółowoAlgorytm selekcji Hoare a. Łukasz Miemus
Algorytm selekcji Hoare a Łukasz Miemus 1 lutego 2006 Rozdział 1 O algorytmie 1.1 Problem Mamy tablicę A[N] różnych elementów i zmienną int K, takie że 1 K N. Oczekiwane rozwiązanie to określenie K-tego
Bardziej szczegółowoAlgorytmy i struktury danych
Letnie Warsztaty Matematyczno-Informatyczne Algorytmy i struktury danych Mariusz Różycki University of Cambridge Zajęcia będą mieć formę wykładową. Slajdy można znaleźć na stronie kursu: http://lw.mi.edu.pl/informatyka/algorytmy.
Bardziej szczegółowoAlgorytm. Krótka historia algorytmów
Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne
Bardziej szczegółowoWstęp do informatyki- wykład 2
MATEMATYKA 1 Wstęp do informatyki- wykład 2 Systemy liczbowe Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy
Bardziej szczegółowo5. Rozwiązywanie układów równań liniowych
5. Rozwiązywanie układów równań liniowych Wprowadzenie (5.1) Układ n równań z n niewiadomymi: a 11 +a 12 x 2 +...+a 1n x n =a 10, a 21 +a 22 x 2 +...+a 2n x n =a 20,..., a n1 +a n2 x 2 +...+a nn x n =a
Bardziej szczegółowoZa pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).
Algorytmy definicja, cechy, złożoność. Algorytmy napotykamy wszędzie, gdziekolwiek się zwrócimy. Rządzą one wieloma codziennymi czynnościami, jak np. wymiana przedziurawionej dętki, montowanie szafy z
Bardziej szczegółowoAlgorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.
Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne
Bardziej szczegółowoPrzykładowy program ćwiczeń
Przykładowy program ćwiczeń Ćwiczenie 1. Obliczenie funkcji elementarnych za pomocą szeregów. Opracowanie wyrażeń rekurencyjnych. 3 4 Realizacja w Ecelu funkcji e 1. 1!! 3! 4! Przykład 1: Obliczenie wartości
Bardziej szczegółowoDr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska
Dr inż. Robert Wójcik, p. 313, C-3, tel. 320-27-40 Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska E-mail: Strona internetowa: robert.wojcik@pwr.edu.pl google: Wójcik
Bardziej szczegółowoTEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 3 2 Złożoność obliczeniowa algorytmów Notacja wielkie 0 Notacja Ω i Θ Algorytm Hornera Przykłady rzędów
Bardziej szczegółowoStruktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott
Struktury danych i złozoność obliczeniowa Prof. dr hab. inż. Jan Magott Formy zajęć: Wykład 1 godz., Ćwiczenia 1 godz., Projekt 2 godz.. Adres strony z materiałami do wykładu: http://www.zio.iiar.pwr.wroc.pl/sdizo.html
Bardziej szczegółowoEgzamin, AISDI, I termin, 18 czerwca 2015 r.
Egzamin, AISDI, I termin, 18 czerwca 2015 r. 1 W czasie niezależnym do danych wejściowych działają algorytmy A. sortowanie bąbelkowego i Shella B. sortowanie szybkiego i przez prosty wybór C. przez podział
Bardziej szczegółowoWykład 1 Wprowadzenie do algorytmów. Zawartość wykładu 1. Wstęp do algorytmów i struktur danych 2. Algorytmy z rozgałęzieniami.
Wykład 1 Wprowadzenie do algorytmów Zawartość wykładu 1. Wstęp do algorytmów i struktur danych 2. Algorytmy z rozgałęzieniami Wykaz literatury 1. N. Wirth - Algorytmy+Struktury Danych = Programy, WNT Warszawa
Bardziej szczegółowoProjektowanie i Analiza Algorytmów
POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI I TECHNIK INFORMACYJNYCH Projektowanie i Analiza Algorytmów www.pk.edu.pl/~zk/piaa_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład
Bardziej szczegółowoautomatyka i robotyka II stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)
Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Nazwa modułu w języku angielskim Obowiązuje od roku akademickiego 2013/2014
Bardziej szczegółowoAlgorytmy i Struktury Danych.
Algorytmy i Struktury Danych. Organizacja wykładu. Problem Sortowania. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 1 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury
Bardziej szczegółowoAlgorytmy i schematy blokowe
Algorytmy i schematy blokowe Algorytm dokładny przepis podający sposób rozwiązania określonego zadania w skończonej liczbie kroków; zbiór poleceń odnoszących się do pewnych obiektów, ze wskazaniem porządku,
Bardziej szczegółowoInformacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char
Programowanie C++ Informacje wstępne #include - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char = -128 do 127, unsigned char = od
Bardziej szczegółowoALGORYTMY. 1. Podstawowe definicje Schemat blokowy
ALGORYTMY 1. Podstawowe definicje Algorytm (definicja nieformalna) to sposób postępowania (przepis) umożliwiający rozwiązanie określonego zadania (klasy zadań), podany w postaci skończonego zestawu czynności
Bardziej szczegółowoWprowadzenie do algorytmiki
Wprowadzenie do algorytmiki Pojecie algorytmu Powszechnie przyjmuje się, że algorytm jest opisem krok po kroku rozwiązania postawionego problemu lub sposób osiągnięcia jakiegoś celu. Wywodzi się z matematyki
Bardziej szczegółowoWykład 1_2 Algorytmy sortowania tablic Sortowanie bąbelkowe
I. Struktury sterujące.bezpośrednie następstwo (A,B-czynności) Wykład _2 Algorytmy sortowania tablic Sortowanie bąbelkowe Elementy języka stosowanego do opisu algorytmu Elementy Poziom koncepcji Poziom
Bardziej szczegółowoPodstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 7 Algorytmy
Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 7 Algorytmy Programowanie Sformułowanie problemu. Opracowanie metodyki rozwiązania. Opracowanie algorytmu. Napisanie kodu źródłowego (zakodowanie) w
Bardziej szczegółowoInformatyka 1. Złożoność obliczeniowa
Informatyka 1 Wykład XI Złożoność obliczeniowa Robert Muszyński ZPCiR ICT PWr Zagadnienia: efektywność programów/algorytmów, sposoby zwiększania efektywności algorytmów, zasada 80 20, ocena efektywności
Bardziej szczegółowoZał nr 4 do ZW. Dla grupy kursów zaznaczyć kurs końcowy. Liczba punktów ECTS charakterze praktycznym (P)
Zał nr 4 do ZW WYDZIAŁ PODSTAWOWYCH PROBLEMÓW TECHNIKI KARTA PRZEDMIOTU Nazwa w języku polskim : Obliczenia Naukowe Nazwa w języku angielskim : Scientific Computing. Kierunek studiów : Informatyka Specjalność
Bardziej szczegółowoAlgorytmy i Struktury Danych
Algorytmy i Struktury Danych Podstawowe informacje Prowadzący: Jan Tuziemski Email: jan.tuziemski@pg.edu.pl Konsultacje: pokój 412 GB (do ustalenia 412 GB) Podstawowe informacje literatura K. Goczyła Struktury
Bardziej szczegółowoSchematy blokowe. Algorytmy Marek Pudełko
Schematy blokowe Algorytmy Marek Pudełko Metody zapisu algorytmów Algorytmy można zapisywać w postaci słownej, listy kroków lub symbolicznej - używając metajęzyków. Metajęzyk to język bardzo ogólny - opisujący
Bardziej szczegółowoRozdział 4. Algorytmy sortowania 73 Rozdział 5. Typy i struktury danych 89 Rozdział 6. Derekursywacja i optymalizacja algorytmów 147
Spis treści Przedmowa 9 Rozdział 1. Zanim wystartujemy 17 Jak to wcześniej bywało, czyli wyjątki z historii maszyn algorytmicznych 18 Jak to się niedawno odbyło, czyli o tym, kto wymyślił" metodologię
Bardziej szczegółowoAlgorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.
Algorytm znaczenie informatyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne
Bardziej szczegółowoAlgorytmy i Struktury Danych.
Algorytmy i Struktury Danych. Metoda Dziel i zwyciężaj. Problem Sortowania, cd. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 2 Bożena Woźna-Szcześniak (AJD) Algorytmy
Bardziej szczegółowoInformatyka wprowadzenie do algorytmów (II) dr hab. inż. Mikołaj Morzy
Informatyka wprowadze do algorytmów (II) dr hab. inż. Mikołaj Morzy plan wykładu cechy algorytmów sposoby zapisu algorytmów klasyfikacja algorytmów przykłady algorytmów sumowa przeszukiwa ciągu liczb sortowa
Bardziej szczegółowox y
Przykłady pytań na egzamin końcowy: (Uwaga! Skreślone pytania nie obowiązują w tym roku.). Oblicz wartość interpolacji funkcjami sklejanymi (przypadek (case) a), dla danych i =[- 4 5], y i =[0 4 -]. Jaka
Bardziej szczegółowoINFORMATYKA SORTOWANIE DANYCH.
INFORMATYKA SORTOWANIE DANYCH http://www.infoceram.agh.edu.pl SORTOWANIE Jest to proces ustawiania zbioru obiektów w określonym porządku. Sortowanie stosowane jest w celu ułatwienia późniejszego wyszukania
Bardziej szczegółowoAlgorytmy sortujące i wyszukujące
Algorytmy sortujące i wyszukujące Zadaniem algorytmów sortujących jest ułożenie elementów danego zbioru w ściśle określonej kolejności. Najczęściej wykorzystywany jest porządek numeryczny lub leksykograficzny.
Bardziej szczegółowoWykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL
Studia Podyplomowe INFORMATYKA Podstawy Informatyki Wykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL 1 Część 1 Pojęcie algorytmu 2 I. Pojęcie algorytmu Trochę historii Pierwsze
Bardziej szczegółowoEfektywność algorytmów
Efektywność algorytmów Algorytmika Algorytmika to dział informatyki zajmujący się poszukiwaniem, konstruowaniem i badaniem własności algorytmów, w kontekście ich przydatności do rozwiązywania problemów
Bardziej szczegółowoEgzamin z Metod Numerycznych ZSI, Egzamin, Gr. A
Egzamin z Metod Numerycznych ZSI, 06.2007. Egzamin, Gr. A Imię i nazwisko: Nr indeksu: Section 1. Test wyboru, max 33 pkt Zaznacz prawidziwe odpowiedzi literą T, a fałszywe N. Każda prawidłowa odpowiedź
Bardziej szczegółowoMetody numeryczne. materiały do wykładu dla studentów
Metody numeryczne materiały do wykładu dla studentów Autorzy: Maria Kosiorowska Marta Kornafel Grzegorz Kosiorowski Grzegorz Szulik Sebastian Baran Jakub Bielawski Materiały przygotowane w ramach projektu
Bardziej szczegółowoAlgorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny
Algorytm to przepis; zestawienie kolejnych kroków prowadzących do wykonania określonego zadania; to uporządkowany sposób postępowania przy rozwiązywaniu zadania, problemu, z uwzględnieniem opisu danych
Bardziej szczegółowoWykład 4. Określimy teraz pewną ważną klasę pierścieni.
Wykład 4 Określimy teraz pewną ważną klasę pierścieni. Twierdzenie 1 Niech m, n Z. Jeśli n > 0 to istnieje dokładnie jedna para licz q, r, że: m = qn + r, 0 r < n. Liczbę r nazywamy resztą z dzielenia
Bardziej szczegółowoAlgorytmy i struktury danych. Wykład 4
Wykład 4 Różne algorytmy - obliczenia 1. Obliczanie wartości wielomianu 2. Szybkie potęgowanie 3. Algorytm Euklidesa, liczby pierwsze, faktoryzacja liczby naturalnej 2017-11-24 Algorytmy i struktury danych
Bardziej szczegółowoZadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5.
Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5. Schemat Hornera. Wyjaśnienie: Zadanie 1. Pozycyjne reprezentacje
Bardziej szczegółowoZadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.
Sortowanie Dane wejściowe: ciąg n-liczb (kluczy) (a 1, a 2, a 3,..., a n 1, a n ) Dane wyjściowe: permutacja ciągu wejściowego (a 1, a 2, a 3,..., a n 1, a n) taka, że a 1 a 2 a 3... a n 1 a n. Będziemy
Bardziej szczegółowoMetody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015
Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 1 Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane
Bardziej szczegółowoWstęp do programowania
Wstęp do programowania Złożoność obliczeniowa, poprawność programów Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. XII Jesień 2013 1 / 20 Złożoność obliczeniowa Problem Ile czasu
Bardziej szczegółowoTechnologie informacyjne Wykład VII-IX
Technologie informacyjne -IX A. Matuszak 19 marca 2013 A. Matuszak Technologie informacyjne -IX Rekurencja A. Matuszak (2) Technologie informacyjne -IX Gotowanie jajek na miękko weż czysty garnek włóż
Bardziej szczegółowoECTS (Część 2. Metody numeryczne) Nazwa w języku angielskim: Algorithms and data structures.
Algorytmy i struktury danych. Metody numeryczne ECTS (Część 2. Metody numeryczne) Nazwa w języku angielskim: Algorithms and data structures. dzienne magisterskie Numerical methods. (Part 2. Numerical methods)
Bardziej szczegółowo2.8. Algorytmy, schematy, programy
https://app.wsipnet.pl/podreczniki/strona/38766 2.8. Algorytmy, schematy, programy DOWIESZ SIĘ co oznaczają pojęcia: algorytm, schemat blokowy, język programowania, jakie są sposoby obliczania największego
Bardziej szczegółowoPorównanie czasów działania algorytmów sortowania przez wstawianie i scalanie
Więcej o sprawności algorytmów Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie Załóżmy, że możemy wykonać dane zadanie przy użyciu dwóch algorytmów: jednego o złożoności czasowej
Bardziej szczegółowoa[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10] 3-2 5 8 12-4 -26 12 45-76
. p. 1 Algorytmem nazywa się poddający się interpretacji skończony zbiór instrukcji wykonania zadania mającego określony stan końcowy dla każdego zestawu danych wejściowych W algorytmach mogą występować
Bardziej szczegółowoJeszcze o algorytmach
Jeszcze o algorytmach Przykłady różnych, podstawowych algorytmów 11.01.2018 M. Rad Plan Powtórka Znajdowanie najmniejszego elementu Segregowanie Poszukiwanie przez połowienie Wstawianie Inne algorytmy
Bardziej szczegółowoPOLITECHNIKA OPOLSKA
POLITECHNIKA OPOLSKA WYDZIAŁ MECHANICZNY Katedra Technologii Maszyn i Automatyzacji Produkcji Laboratorium Podstaw Inżynierii Jakości Ćwiczenie nr 2 Temat: Schemat blokowy (algorytm) procesu selekcji wymiarowej
Bardziej szczegółowokoordynator modułu dr hab. Michał Baczyński rok akademicki 2012/2013
Uniwersytet Śląski w Katowicach str. 1 Kierunek i poziom studiów: Matematyka, studia II stopnia, rok 1 Sylabus modułu: Matematyczne podstawy informatyki (03-MO2S-12-MPIn) 1. Informacje ogólne koordynator
Bardziej szczegółowoInformatyka A. Algorytmy
Informatyka A Algorytmy Spis algorytmów 1 Algorytm Euklidesa....................................... 2 2 Rozszerzony algorytm Euklidesa................................ 2 3 Wyszukiwanie min w tablicy..................................
Bardziej szczegółowoMetody numeryczne I Równania nieliniowe
Metody numeryczne I Równania nieliniowe Janusz Szwabiński szwabin@ift.uni.wroc.pl Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/66 Równania nieliniowe 1. Równania nieliniowe z pojedynczym pierwiastkiem
Bardziej szczegółowoROZKŁAD MATERIAŁU DLA KLASY I LICEUM I TECHNIKUM (ZAKRES PODSTAWOWY I ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ
ROZKŁAD MATERIAŁU DLA KLASY I LICEUM I TECHNIKUM (ZAKRES PODSTAWOWY I ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ ZBIORY TEMAT LICZBA GODZIN LEKCYJNYCH WYMAGANIA SZCZEGÓŁOWE Z PODSTAWY PROGRAMOWEJ Z
Bardziej szczegółowoAlgorytmy. Programowanie Proceduralne 1
Algorytmy Programowanie Proceduralne 1 Przepis Warzenie piwa Brunświckiego Programowanie Proceduralne 2 Przepis Warzenie piwa Brunświckiego składniki (dane wejściowe): woda, słód, itd. wynik: beczka piwa
Bardziej szczegółowoWprowadzenie do algorytmów / Thomas H. Cormen [et al.]. - wyd. 7. Warszawa, Spis treści. Wprowadzenie 2
Wprowadzenie do algorytmów / Thomas H. Cormen [et al.]. - wyd. 7. Warszawa, 2012 Spis treści Przedmowa XIII Część I Podstawy Wprowadzenie 2 1. Rola algorytmów w obliczeniach 4 1.1. Algorytmy 4 1.2. Algorytmy
Bardziej szczegółowoZaawansowane algorytmy i struktury danych
Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań praktycznych z egzaminów. Strona 1 z 12 Pytania praktyczne z kolokwium zaliczeniowego z 19 czerwca 2014 (studia dzienne)
Bardziej szczegółowoJęzyk ludzki kod maszynowy
Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza
Bardziej szczegółowoProgramowanie w VB Proste algorytmy sortowania
Programowanie w VB Proste algorytmy sortowania Sortowanie bąbelkowe Algorytm sortowania bąbelkowego polega na porównywaniu par elementów leżących obok siebie i, jeśli jest to potrzebne, zmienianiu ich
Bardziej szczegółowoTeoria liczb. Magdalena Lemańska. Magdalena Lemańska,
Teoria liczb Magdalena Lemańska Literatura Matematyka Dyskretna Andrzej Szepietowski http://wazniak.mimuw.edu.pl/ Discrete Mathematics Seymour Lipschutz, Marc Lipson Wstęp Teoria liczb jest dziedziną matematyki,
Bardziej szczegółowoALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny
ALGORYMY Algorytm to przepis; zestawienie kolejnych kroków prowadzących do wykonania określonego zadania; to uporządkowany sposób postępowania przy rozwiązywaniu zadania, problemu, z uwzględnieniem opisu
Bardziej szczegółowoLICZBY PIERWSZE. Jan Ciurej Radosław Żak
LICZBY PIERWSZE Jan Ciurej Radosław Żak klasa IV a Katolicka Szkoła Podstawowa im. Świętej Rodziny z Nazaretu w Krakowie ul. Pędzichów 13, 31-152 Kraków opiekun - mgr Urszula Zacharska konsultacja informatyczna
Bardziej szczegółowoSylabus modułu: Matematyczne podstawy informatyki (kod modułu:03-mo2n-12-mpln)
Uniwersytet Śląski w Katowicach str. 1 Kierunek i poziom studiów: Matematyka, studia II stopnia, rok 1 Sylabus modułu: Matematyczne podstawy informatyki (kod modułu:03-mo2n-12-mpln) 1. Informacje ogólne
Bardziej szczegółowoMet Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łanc Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn
Metody numeryczne Wykład 3 Dr inż. Michał Łanczont Instytut Elektrotechniki i Elektrotechnologii E419, tel. 4293, m.lanczont@pollub.pl, http://m.lanczont.pollub.pl Zakres wykładu Pojęcia podstawowe Algebra
Bardziej szczegółowoZaawansowane algorytmy. Wojciech Horzelski
Zaawansowane algorytmy Wojciech Horzelski 1 Organizacja Wykład: poniedziałek 8 15-10 Aula Ćwiczenia: Każdy student musi realizować projekty (treść podawana na wykładzie) : Ilość projektów : 5-7 Na realizację
Bardziej szczegółowoALGORYTMY. 1. Podstawowe definicje Schemat blokowy
ALGORYTMY 1. Podstawowe definicje Algorytm (definicja nieformalna) to sposób postępowania (przepis) umożliwiający rozwiązanie określonego zadania (klasy zadań), podany w postaci skończonego zestawu czynności
Bardziej szczegółowoTechnologie informacyjne - wykład 12 -
Zakład Fizyki Budowli i Komputerowych Metod Projektowania Instytut Budownictwa Wydział Budownictwa Lądowego i Wodnego Politechnika Wrocławska Technologie informacyjne - wykład 12 - Prowadzący: Dmochowski
Bardziej szczegółowoZadanie 1. Test (6 pkt) Zaznacz znakiem X w odpowiedniej kolumnie P lub F, która odpowiedź jest prawdziwa, a która fałszywa.
2 Egzamin maturalny z informatyki Zadanie 1. Test (6 pkt) Zaznacz znakiem X w odpowiedniej kolumnie lub, która odpowiedź jest prawdziwa, a która fałszywa. a) rzeanalizuj poniższy algorytm (:= oznacza instrukcję
Bardziej szczegółowoWymagania na poszczególne oceny szkolne Klasa 7
1 Wymagania na poszczególne oceny szkolne Klasa 7 Ocena postępów ucznia jest wynikiem oceny stopnia opanowania jego umiejętności podstawowych i ponadpodstawowych. W poniższej tabeli umiejętności te przypisane
Bardziej szczegółowoWymagania dla klasy siódmej. Treści na 2 na 3 na 4 na 5 na 6 Uczeń: Uczeń: Uczeń: Uczeń: Uczeń: DZIAŁ 1. LICZBY
Wymagania dla klasy siódmej Treści na 2 na 3 na 4 na 5 na 6 Uczeń: Uczeń: Uczeń: Uczeń: Uczeń: DZIAŁ 1. LICZBY Rzymski sposób zapisu liczb Liczby pierwsze i złożone. Dzielenie z resztą Rozwinięcia dziesiętne
Bardziej szczegółowoZłożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to
Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to wprowadzili J. Hartmanis i R. Stearns. Najczęściej przez zasób rozumie się czas oraz pamięć dlatego
Bardziej szczegółowoMetody numeryczne Numerical methods. Energetyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólnoakademicki / praktyczny)
KARTA MODUŁU / KARTA PRZEDMIOTU Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. Kod modułu Nazwa modułu Nazwa modułu w języku angielskim uje od roku akademickiego 2012/13 2013/14
Bardziej szczegółowoWybrane zagadnienia teorii liczb
Wybrane zagadnienia teorii liczb Podzielność liczb NWW, NWD, Algorytm Euklidesa Arytmetyka modularna Potęgowanie modularne Małe twierdzenie Fermata Liczby pierwsze Kryptosystem RSA Podzielność liczb Relacja
Bardziej szczegółowo