Informatyka A. Algorytmy
|
|
- Damian Czerwiński
- 6 lat temu
- Przeglądów:
Transkrypt
1 Informatyka A Algorytmy Spis algorytmów 1 Algorytm Euklidesa Rozszerzony algorytm Euklidesa Wyszukiwanie min w tablicy Jednoczesne wyszukiwanie min i max w tablicy Schemat Hornera Potęgowanie binarne Zamiana z systemu dziesiętnego na system o innej podstawie Rozwiązywanie liniowego równania diofantycznego Wyszukiwanie liniowe (sekwencyjne) Wyszukiwanie z wartownikiem Wyszukiwanie binarne Sortowanie bąbelkowe Sortowanie przez wybieranie (selekcję) Sortowanie przez wstawianie Sortowanie przez zliczanie Sortowanie przez scalanie Scalanie tablic Sortowanie szybkie (quicksort) Obliczanie miejsca zerowego metodą połowienia Obliczanie miejsca zerowego metodą siecznych Sito Eratostenesa Algorytm obliczania n-tego wyrazu ciągu Fibonacciego Rekurencyjny algorytm Euklidesa Rekurencyjne podnoszenie do potęgi Wyszukiwanie binarne - wersja rekurencyjna Szybkie podnoszenie do potęgi Wyszukiwanie min w tablicy - wersja rekurencyjna Algorytm obliczania n-tego wyrazu ciągu Fibonacciego - wersja wstępująca Algorytm obliczania n-tego wyrazu ciągu Fibonacciego - wersja zstępująca
2 Algorytm 1: Algorytm Euklidesa Dane: a, b N + Wynik: NW D(a, b) while b 0 do c = a mod b a = b b = c Pisz a Algorytm 2: Rozszerzony algorytm Euklidesa Dane: a, b N + Wynik: d = NW D(a, b), {u, v} takie, że ua + vb = d (u 1, r 1, u 2, r 2 ) = (1, a, 0, b) while r 2 > 0 do q = r1 r 2 (u 1, r 1, u 2, r 2 ) = (u 2, r 2, u 1 q u 2, r 1 q r 2 ) Pisz d = r 1, {u, v} = (u 1, r 1 u 1 a b ) Algorytm 3: Wyszukiwanie min w tablicy Dane: T [1... n] Wynik: min(t [1],..., T [n]) min = 1 for i = 2,..., n do if T [i] < T [min] then min = i Pisz T [min] 2
3 Algorytm 4: Jednoczesne wyszukiwanie min i max w tablicy Dane: T [1... n] Wynik: min(t [1],..., T [n]), max(t [1],..., T [n]) 1. Jeśli n = 1, to min = max = T [1] 2. W kolejnych parach elementów umieść na pozycji nieparzystej element lżejszy, na parzystej element cięższy. Jeśli n jest nieparzyste, to ostatni element ciągu oznacz przez e 3. Szukamy elementu minimalnego dla indeksów nieparzystych, elementu maksymalnego dla indeksów parzystych 4. Jeśli n jest nieparzyste, to porównaj otrzymane wartości z e Algorytm 5: Schemat Hornera Dane: f(x) = a 0 X n + a 1 X n a n 1 X + a n, x 0 R Wynik: f(x 0 ) w = a 0 for i = 1,..., n do w = w x 0 + a i Pisz w Algorytm 6: Potęgowanie binarne Dane: b R, n N {0} Wynik: b n x = 1 z = b i = n while i > 0 do if i mod 2 = 1 then x = x z z = z z i = i 2 Pisz x Algorytm 7: Zamiana z systemu dziesiętnego na system o innej podstawie Dane: n N liczba w systemie dziesiętnym, p N podstawa systemu Wynik: n w systemie o podstawie p // T [1... log p n + 1] - tablica z cyframi liczby n w systemie o podstawie p k = 1 while n > 0 do T [k] = n mod p k = k + 1 n = n p for i = k 1,..., 1 do Pisz T [i] 3
4 Algorytm 8: Rozwiązywanie liniowego równania diofantycznego Dane: a, b, c Z takie, że ax + by = c Wynik: Rozwiązanie ogólne równania ax + by = c (d, u, v) = RozszerzonyAlgorytmEuklidesa(a, b) if c mod d = 0 then Pisz x = c u d + t b d Pisz y = c v d t a d Pisz Brak rozwiązań Algorytm 9: Wyszukiwanie liniowe (sekwencyjne) Dane: T 1,..., T n, K poszukiwany element Wynik: Indeks i {1,..., n} taki, że T i = K. W przypadku, gdy takie i nie istnieje zwracamy 1 1. i = 1 2. Jeśli K = T i, to zakończ działanie algorytmu i zwróć i 3. i = i Jeśli i n, to wróć do 2 w przeciwnym razie zakończ działanie algorytmu i zwróć 1 Algorytm 10: Wyszukiwanie z wartownikiem Dane: T 1,..., T n, K poszukiwany element Wynik: Indeks i {1,..., n} taki, że T i = K. W przypadku, gdy takie i nie istnieje zwracamy 1 1. i = 1, T n+1 = K 2. Jeśli T i = K, to idź do 4 3. i = i + 1, idź do 2 4. Jeśli i n, to zwróć i, w przeciwnym przypadku 1 4
5 Algorytm 11: Wyszukiwanie binarne Dane: A posortowana tablica, v poszukiwany element, l, r zakres w jakim poszukujemy Wynik: Indeks poszukiwanego elementu, w przypadku nie znalezienia elementu zwracamy 1 while r l do m = l+r 2 if v = A[m] then return m if v < A[m] then r = m 1 l = m + 1 return 1 Algorytm 12: Sortowanie bąbelkowe Dane: T [1... n] Wynik: Posortowana tablica T for j = 1,..., n 1 do for i = 1,..., n 1 do if T [i] > T [i + 1] then zamień(t [i], T [i + 1]) Algorytm 13: Sortowanie przez wybieranie (selekcję) Dane: T [1... n] Wynik: Posortowana tablica T for i = 1,..., n 1 do min = i for j = i + 1,..., n do if T [j] < T [min] then min = j zamień(t [i], T [min]) Algorytm 14: Sortowanie przez wstawianie Dane: T [1... n] Wynik: Posortowana tablica T for i = 2,... n do x = T [i] j = i 1 while j > 0 and x < T [j] do T [j + 1] = T [j] j = j 1 T [j + 1] = x 5
6 Algorytm 15: Sortowanie przez zliczanie Dane: A[1... n] tablica liczb naturalnych z przedziału [1, k] Wynik: Posortowana tablica A // B[1... n] - tablica posortowana // C[1... k] - tablica pomocnicza for i = 1,..., k do C[i] = 0 for i = 1,..., n do C[A[i]] = C[A[i]] + 1 for i = 2,..., k do C[i] = C[i] + C[i 1] for i = 1,..., n do B[C[A[i]]] = A[i] C[A[i]] = C[A[i]] 1 // C[i] liczba elementów = i // C[i] liczba elementów i Algorytm 16: Sortowanie przez scalanie Dane: A[1... n] tablica liczb naturalnych Wynik: Posortowana tablica A MergeSort(A, n) M sort(a, 1, n) M sort(a, l, r) if l < r then m = l+r 2 M sort(a, l, m) M sort(a, m + 1, r) Scalaj(A, l, m, r) 6
7 Algorytm 17: Scalanie tablic Dane: A[1... n] tablica liczb naturalnych, m - rozmiar tablicy Wynik: Posortowana tablica A Scalaj(A, l, m, r) C //- tablica pomocnicza i = l; j = m + 1; k = l; while i m and j r do if A[i] A[j] then C[k] = A[i] i = i + 1 C[k] = A[j] j = j + 1 k = k + 1 while i m do C[k] = A[i] i = i + 1 k = k + 1 while j r do C[k] = A[j] j = j + 1 k = k + 1 for k = l to r do A[k] = C[k] 7
8 Algorytm 18: Sortowanie szybkie (quicksort) Dane: T [1... n] Wynik: Posortowana tablica T Quicksort(A, n) Q sort(a, 1, n) Q sort(a, l, r) if l < r then j =Podział(A, l, r) Q sort(a, l, j 1) Q sort(a, j + 1, r) Podział(A, l, r) x = A[l] i = l + 1 j = r koniec = false while not koniec do while j > l and x A[j] do j = j 1 while i < r and x > A[i] do i = i + 1 if i < j then zamień(a[i], A[j]) j = j 1 i = i + 1 koniec = true A[l] = A[j] A[j] = x return j 8
9 Algorytm 19: Obliczanie miejsca zerowego metodą połowienia Dane: Funkcja ciągła f, końce przedziału a, b R, f(a)f(b) < 0 Wynik: x 0 R takie, że f(x 0 ) = 0 // ε dokładność z jaką chcemy liczyć miejsce zerowe f a = f(a) f b = f(b) while a b > ε do x 0 = a+b 2 f 0 = f(x 0 ) if f 0 = 0 then break if f a f 0 < 0 then b = x 0 a = x0 Pisz x 0 f a = f 0 9
10 Algorytm 20: Obliczanie miejsca zerowego metodą siecznych Dane: Funkcja ciągła f, końce przedziału x 1, x 2 R Wynik: x 0 R takie, że f(x 0 ) = 0 // ε dokładność z jaką chcemy liczyć miejsce zerowe // n maksymalna ilość przebiegów algorytmu f 1 = f(x 1 ) f 2 = f(x 2 ) i = n while i > 0 and x 1 x 2 > ε do x x 0 = x 1 f 1 x 2 1 f 1 f 2 f 0 = f(x 0 ) x 2 = x 1 f 2 = f 1 x 1 = x 0 f 1 = f 0 i = i 1 if i = 0 then Pisz Przekroczony limit przebiegów Pisz x 0 Algorytm 21: Sito Eratostenesa Dane: n N Wynik: Tablica zawierająca liczby pierwsze n Utwórz listę L = {1,..., n} L[1] = 0 k = n for i = 2,..., k do if L[i] 0 then for j = i 2, i 2 + i, i 2 + 2i,..., n do L[j] = 0 for i = 2,..., n do if L[i] 0 then Pisz i 10
11 Algorytm 22: Algorytm obliczania n-tego wyrazu ciągu Fibonacciego Dane: n N Wynik: n-ty wyraz ciągu Fibonacciego Function Fibonacci(n N) if ((n = 0) or (n = 1) ) then return n return Fibonacci (n 1)+Fibonacci (n 2) Algorytm 23: Rekurencyjny algorytm Euklidesa Dane: a, b N Wynik: NW D(a, b) Function Euklides(a N, b N) if (b = 0) then return a return Euklides (b, a mod b) Algorytm 24: Rekurencyjne podnoszenie do potęgi Dane: a, n N Wynik: a n Function Potega(a N, n N) if (n = 1) then return a if (n mod 2 = 0) then p =Potega(a, n/2) return p p p =Potega(a, (n 1)/2) return p p a 11
12 Algorytm 25: Wyszukiwanie binarne - wersja rekurencyjna Dane: A posortowana tablica, v poszukiwany element, l, r zakres w jakim poszukujemy Wynik: Indeks poszukiwanego elementu, w przypadku nie znalezienia elementu zwracamy 1 Function wysz-binarne(a, v N, l N, r N) if l r then return 1 m = l+r 2 if v = A[m] then return m if v < A[m] then return wysz-binarne(a, v, l, m 1) return wysz-binarne(a, v, m + 1, r) Algorytm 26: Szybkie podnoszenie do potęgi Dane: a, n N Wynik: a n Function szybkie-potega(a N, n N) if (n = 1) then return a m = n 2 p = szybkie-potega(a, m) p = p p if (n mod 2 = 1) then p = p a return p Algorytm 27: Wyszukiwanie min w tablicy - wersja rekurencyjna Dane: T [1... n], l, r N, gdzie l, r to odpowiednio prawy i lewy koniec tablicy Wynik: min(t [1],..., T [n]) Function minimum(t [1 n], l, r) if l r = 0 then return T [l] m = l+r 2 x =minimum(t, l, m) y =minimum(t, m + 1, r) if x < y then return x return y 12
13 Algorytm 28: Algorytm obliczania n-tego wyrazu ciągu Fibonacciego - wersja wstępująca Dane: n N Wynik: n-ty wyraz ciągu Fibonacciego Function Fibonacci-wstępujący(n N) F [0] = 0 F [1] = 1 for i = 2 to n do F [i] = F [i 1] + F [i 2] Algorytm 29: Algorytm obliczania n-tego wyrazu ciągu Fibonacciego - wersja zstępująca Dane: n N Wynik: n-ty wyraz ciągu Fibonacciego Function Fibonacci-zstępujący(n N) if F [n] = 0 then t = n if n > 1 then t=fibonacci-zstępujący(n 1)+Fibonacci-zstępujący(n 2) F [n] = t return F [n] 13
Analiza 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ą
Podstawowe 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
Analiza algorytmów zadania podstawowe
Analiza algorytmów zadania podstawowe 15 stycznia 2019 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 P Jaka wartość zostanie zwrócona
Jeszcze 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
Programowanie 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
Programowanie Proceduralne
Programowanie Proceduralne Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 1 Bożena Woźna-Szcześniak (AJD) Programowanie Proceduralne Wykład 1 1 / 59 Cel wykładów z programowania
Wstęp do programowania
Wstęp do programowania Wykład 5 Podstawowe techniki programownia w przykładach Janusz Szwabiński Plan wykładu: Metoda babilońska wyliczania pierwiastka Liczby pierwsze i sito Eratostenesa Metoda bisekcji
WPROWADZENIE DO ALGORYTMÓW Zadania
WPROWADZENIE DO ALGORYTMÓW Zadania mgr Zofia Makara 11 maja 2004 1 Algorytmy liniowe Napisz algorytm, przedstaw go przy użyciu schematu blokowego i zaimplementuj w dowolnym języku programowania (np. w
Zadanie 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
Rekurencja. Rekurencja zwana także rekursją jest jedną z najważniejszych metod konstruowania rozwiązań i algorytmów.
Rekurencja Rekurencja zwana także rekursją jest jedną z najważniejszych metod konstruowania rozwiązań i algorytmów. Zgodnie ze znaczeniem informatycznym algorytm rekurencyjny to taki który korzysta z samego
FUNKCJA REKURENCYJNA. function s(n:integer):integer; begin if (n>1) then s:=n*s(n-1); else s:=1; end;
Rekurencja Wykład: rekursja, funkcje rekurencyjne, wywołanie samej siebie, wyznaczanie poszczególnych liczb Fibonacciego, potęgowanie, algorytm Euklidesa REKURENCJA Rekurencja (z łac. recurrere), zwana
Sortowanie przez scalanie
Sortowanie przez scalanie Wykład 2 12 marca 2019 (Wykład 2) Sortowanie przez scalanie 12 marca 2019 1 / 17 Outline 1 Metoda dziel i zwyciężaj 2 Scalanie Niezmiennik pętli - poprawność algorytmu 3 Sortowanie
Algorytmy 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
Wykład 5. Sortowanie w czasie liniowologarytmicznym
Wykład 5 Sortowanie w czasie liniowologarytmicznym 1 Sortowanie - zadanie Definicja (dla liczb): wejście: ciąg n liczb A = (a 1, a 2,, a n ) wyjście: permutacja (a 1,, a n ) taka, że a 1 a n 2 Zestawienie
Technologie 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łóż
Podstawy programowania. Podstawy C# Przykłady algorytmów
Podstawy programowania Podstawy C# Przykłady algorytmów Proces tworzenia programu Sformułowanie problemu funkcje programu zakres i postać danych postać i dokładność wyników Wybór / opracowanie metody rozwiązania
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 9. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 9 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Zasada dziel i zwyciężaj Przykłady znajdowanie
Instrukcje pętli przykłady. Odgadywanie hasła. 1) Program pyta o hasło i podaje adres, gdy hasło poprawne lub komunikat o błędnym haśle.
Instrukcje pętli przykłady. Odgadywanie hasła. 1) Program pyta o hasło i podaje adres, gdy hasło poprawne lub komunikat o błędnym haśle. Sub Hasla1() Dim wzor_hasla As String Dim haslo As String Dim adres
Wstęp do programowania
Wstęp do programowania Algorytmy na tablicach Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) WP w. III Jesień 2013 1 / 23 Dwadzieścia pytań Zasady 1 Osoba 1 wymyśla hasło z ustalonej
Strategia "dziel i zwyciężaj"
Strategia "dziel i zwyciężaj" W tej metodzie problem dzielony jest na kilka mniejszych podproblemów podobnych do początkowego problemu. Problemy te rozwiązywane są rekurencyjnie, a następnie rozwiązania
Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.
Zadania do wykonania Rozwiązując poniższe zadania użyj pętlę for. 1. apisz program, który przesuwa w prawo o dwie pozycje zawartość tablicy 10-cio elementowej liczb całkowitych tzn. element t[i] dla i=2,..,9
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
Podstawy Informatyki. Metalurgia, I rok. Wykład 5 Rekurencja
Podstawy Informatyki Metalurgia, I rok Wykład 5 Rekurencja Rekurencja z łacińskiego oznacza to przybiec z powrotem - osiągniesz rzecz wielką, jeśli zawrócisz po to, by osiągnąć rzeczy małe Przykład: Małe
Podstawy Informatyki. Metalurgia, I rok. Rekurencja. skomplikowane zadanie. Rekurencja
Podstawy Informatyki Metalurgia, I rok Rekurencja z łacińskiego oznacza to przybiec z powrotem - osiągniesz rzecz wielką, jeśli zawrócisz po to, by osiągnąć rzeczy małe Małe dziecko otrzymuje polecenie
Sortowanie danych. Jolanta Bachan. Podstawy programowania
Sortowanie danych Podstawy programowania 2013-06-06 Sortowanie przez wybieranie 9 9 9 9 9 9 10 7 7 7 7 7 10 9 1 3 3 4 10 7 7 10 10 10 10 4 4 4 4 4 4 3 3 3 3 2 2 2 2 2 2 2 3 1 1 1 1 1 1 Gurbiel et al. 2000
Algorytmy 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.
Technologie Informatyczne Wykład VII
Technologie Informatyczne Wykład VII A. Matuszak (1) 22 listopada 2007 A. Matuszak (1) Technologie Informatyczne Wykład VII A. Matuszak (2) Technologie Informatyczne Wykład VII (Rekursja) albo rekursja
EGZAMIN MATURALNY Z INFORMATYKI MAJ 2014 POZIOM ROZSZERZONY CZĘŚĆ I WYBRANE: Czas pracy: 90 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY
Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu. Układ graficzny CKE 201 KOD WPISUJE ZDAJĄCY PESEL Miejsce na naklejkę z kodem EGZAMIN MATURALNY Z INFORMATYKI POZIOM ROZSZERZONY
Algorytmy i Struktury Danych, 2. ćwiczenia
Algorytmy i Struktury Danych, 2. ćwiczenia 2015-10-09 Spis treści 1 Szybkie potęgowanie 1 2 Liczby Fibonacciego 2 3 Dowód, że n 1 porównań jest potrzebne do znajdowania minimum 2 4 Optymalny algorytm do
Algorytm i złożoność obliczeniowa algorytmu
Algorytm i złożoność obliczeniowa algorytmu Algorytm - przepis postępowania, którego wykonanie prowadzi do rozwiązania określonego problemu określa czynności, jakie należy wykonać wyszczególnia wszystkie
Algorytm 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
Podstawy algorytmiki i programowania - wykład 6 Sortowanie- algorytmy
1 Podstawy algorytmiki i programowania - wykład 6 Sortowanie- algorytmy 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
Struktury danych i złożoność obliczeniowa Wykład 2. Prof. dr hab. inż. Jan Magott
Struktury danych i złożoność obliczeniowa Wykład 2. Prof. dr hab. inż. Jan Magott Metody konstrukcji algorytmów: Siłowa (ang. brute force), Dziel i zwyciężaj (ang. divide-and-conquer), Zachłanna (ang.
Algorytmy 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
Zadanie 1. Korale (8 pkt) Rozważamy następującą rekurencyjną procedurę Korale, której parametrem jest dodatnia liczba całkowita n.
Zadanie 1. Korale (8 pkt) Rozważamy następującą rekurencyjną procedurę Korale, której parametrem jest dodatnia liczba całkowita n. Korale(n) 1. Jeżeli n = 1, to 1.1. nawlecz czarny koralik na prawy koniec
Podstawy algorytmiki i programowania - wykład 3 Funkcje rekurencyjne Wyszukiwanie liniowe i binarne w tablicy
1 Podstawy algorytmiki i programowania - wykład 3 Funkcje rekurencyjne Wyszukiwanie liniowe i binarne w tablicy Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania.
Podstawy Informatyki
Podstawy Informatyki Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 7 i 8 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 7 i 8 1 / 44 Struktura danych - tablica
Algorytmy 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
Sortowanie bąbelkowe
1/98 Sortowanie bąbelkowe (Bubble sort) prosty i nieefektywny algorytm sortowania wielokrotnie przeglądamy listę elementów, porównując dwa sąsiadujące i zamieniając je miejscami, jeśli znajdują się w złym
Zagadnienia - równania nieliniowe
Zagadnienia - równania nieliniowe Sformułowanie zadania poszukiwania pierwiastków. Przedział izolacji. Twierdzenia o istnieniu pierwiastków. Warunki zatrzymywania algorytmów. Metoda połowienia: założenia,
Rekurencja. Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)!
Rekurencja Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)! Pseudokod: silnia(n): jeżeli n == 0 silnia = 1 w przeciwnym
Wstęp do programowania
Wstęp do programowania Rekurencja, metoda dziel i zwyciężaj Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk(Wydział Fizyki) WP w. VIII Jesień 2014 1 / 27 Rekurencja Recursion See Recursion. P. Daniluk(Wydział
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 )
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,
Algorytmy i struktury danych. Wykład 6 Tablice rozproszone cz. 2
Algorytmy i struktury danych Wykład 6 Tablice rozproszone cz. 2 Na poprzednim wykładzie Wiele problemów wymaga dynamicznych zbiorów danych, na których można wykonywać operacje: wstawiania (Insert) szukania
np. dla p=1 mamy T1(N) N/2 średni czas chybionego wyszukiwania z prawdopodobieństwem q:
Wykład 4 Wyszukiwania w tablicach posortowanych 1. Wyszukiwanie sekwencyjne w tablicy posortowanej 2. Wyszukiwanie binarne bez powtórzeń 3. Wyszukiwanie binarne z powtórzeniami 1 2 3 4 5 6 7 8 9 10 11
Wieczorowe Studia Licencjackie Wrocław, Wykład nr 6 (w oparciu o notatki K. Lorysia, z modyfikacjami) Sito Eratostenesa
Wieczorowe Studia Licencjackie Wrocław, 7.11.2006 Wstęp do programowania Wykład nr 6 (w oparciu o notatki K. Lorysia, z modyfikacjami) Sito Eratostenesa Zaprezentujemy teraz algorytm na wyznaczanie wszystkich
Laboratoria nr 1. Sortowanie
Laboratoria nr 1 Sortowanie 1. Sortowanie bąbelkowe (BbS) 2. Sortowanie przez wstawianie (IS) 3. Sortowanie przez wybieranie (SS) 4. Sortowanie przez zliczanie (CS) 5. Sortowanie kubełkowe (BS) 6. Sortowanie
Sortowanie w czasie liniowym
Sortowanie w czasie liniowym 1 Sortowanie - zadanie Definicja (dla liczb): wejście: ciąg n liczb A = (a 1, a 2,, a n ) wyjście: permutacja (a 1,, a n ) taka, że a 1 a n Po co sortować? Podstawowy problem
Wykład 3. Metoda dziel i zwyciężaj
Wykład 3 Metoda dziel i zwyciężaj 1 Wprowadzenie Technika konstrukcji algorytmów dziel i zwyciężaj. przykładowe problemy: Wypełnianie planszy Poszukiwanie (binarne) Sortowanie (sortowanie przez łączenie
Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne
A. Permutacja losowa Matematyka dyskretna - wykład - część 2 9. Podstawowe algorytmy kombinatoryczne Załóżmy, że mamy tablice p złożoną z n liczb (ponumerowanych od 0 do n 1). Aby wygenerować losową permutację
Roman Mocek Zabrze 01.09.2007 Opracowanie zbiorcze ze źródeł Scholaris i CKE
Różnice między podstawą programową z przedmiotu Technologia informacyjna", a standardami wymagań będącymi podstawą przeprowadzania egzaminu maturalnego z przedmiotu Informatyka" I.WIADOMOŚCI I ROZUMIENIE
1. Znajdowanie miejsca zerowego funkcji metodą bisekcji.
1. Znajdowanie miejsca zerowego funkcji metodą bisekcji. Matematyczna funkcja f ma być określona w programie w oddzielnej funkcji języka C (tak, aby moŝna było łatwo ją zmieniać). Przykładowa funkcja to:
Wybrane algorytmy tablicowe
Wybrane algorytmy tablicowe Algorytmy i struktury danych Wykład 2. Rok akademicki: 2009/2010 Sortowanie przez wybieranie for (int i = 0; i < liczby.length - 1; i++) k = i; for (int j = i; j < liczby.length;
Wybrane 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
Wybrane wymagania dla informatyki w gimnazjum i liceum z podstawy programowej
Wybrane wymagania dla informatyki w gimnazjum i liceum z podstawy programowej Spis treści Autor: Marcin Orchel Algorytmika...2 Algorytmika w gimnazjum...2 Algorytmika w liceum...2 Język programowania w
INFORMATYKA 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
Przykładowe zadania z teorii liczb
Przykładowe zadania z teorii liczb I. Podzielność liczb całkowitych. Liczba a = 346 przy dzieleniu przez pewną liczbę dodatnią całkowitą b daje iloraz k = 85 i resztę r. Znaleźć dzielnik b oraz resztę
Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny
Klasa 2 INFORMATYKA dla szkół ponadgimnazjalnych zakres rozszerzony Założone osiągnięcia ucznia wymagania edukacyjne na poszczególne oceny Algorytmy 2 3 4 5 6 Wie, co to jest algorytm. Wymienia przykłady
Metody rozwiązywania równań nieliniowych
Metody rozwiązywania równań nieliniowych Rozwiązywanie równań nieliniowych Ogólnie równanie o jednej niewiadomej x można przedstawić w postaci f ( x)=0, x R, (1) gdzie f jest wystarczająco regularną funkcją.
Algorytmy i Struktury Danych, 2. ćwiczenia
Algorytmy i Struktury Danych, 2. ćwiczenia 2017-10-13 Spis treści 1 Optymalne sortowanie 5 ciu elementów 1 2 Sortowanie metodą Shella 2 3 Przesunięcie cykliczne tablicy 3 4 Scalanie w miejscu dla ciągów
Matematyka stosowana i metody numeryczne
Ewa Pabisek Adam Wosatko Piotr Pluciński Matematyka stosowana i metody numeryczne Konspekt z wykładu 6 Rozwiązywanie równań nieliniowych Rozwiązaniem lub pierwiastkiem równania f(x) = 0 lub g(x) = h(x)
Informatyka 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
PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.
PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. 1. Instrukcję case t of... w przedstawionym fragmencie programu moŝna zastąpić: var t : integer; write( Podaj
Wstęp do programowania
wykład 6 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2017/2018 Losowanie liczb całkowitych Dostępne biblioteki Najprostsze losowanie liczb całkowitych można wykonać za pomocą funkcji
Wstęp do programowania. Dziel i rządź. Piotr Chrząstowski-Wachtel
Wstęp do programowania Dziel i rządź Piotr Chrząstowski-Wachtel Divide et impera Starożytni Rzymianie znali tę zasadę Łatwiej się rządzi, jeśli poddani są podzieleni Nie chodziło im jednak bynajmniej o
Wymagania edukacyjne i sposoby sprawdzania edukacyjnych osiągnięć uczniów z informatyki - klasy II zakres rozszerzony
Wymagania edukacyjne i sposoby sprawdzania edukacyjnych osiągnięć uczniów z informatyki - klasy II zakres rozszerzony I. Cele kształcenia wymagania ogólne 1. Bezpieczne posługiwanie się komputerem i jego
WYMAGANIA EGZAMINACYJNE Egzamin maturalny z INFORMATYKI
WYMAGANIA EGZAMINACYJNE Egzamin maturalny z INFORMATYKI 1. Cele ogólne Podstawowym celem kształcenia informatycznego jest przekazanie wiadomości i ukształtowanie umiejętności w zakresie analizowania i
1. Algorytmika. WPROWADZENIE DO ALGORYTMIKI Wprowadzenie do algorytmów. Pojęcie algorytmu.
Wymagania edukacyjne z informatyki poziom rozszerzony w klasie 2 Społecznego Liceum Ogólnokształcącego Splot im. Jana Karskiego w Nowym Sączu 1. Algorytmika TREŚCI NAUCZANIA WPROWADZENIE DO ALGORYTMIKI
Okręgowa Komisja Egzaminacyjna w Krakowie 1
Okręgowa Komisja Egzaminacyjna w Krakowie 1 Egzamin maturalny Egzamin maturalny, zastąpi dotychczasowy egzamin dojrzałości, czyli tzw. starą maturę i przeprowadzany będzie: od roku 2005 dla absolwentów
Zaawansowane 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)
Wstęp do programowania
Wstęp do programowania Podstawowe konstrukcje programistyczne Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) WP w. II Jesień 2013 1 / 34 Przypomnienie Programowanie imperatywne Program
Rozdział 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ę
Poszukiwanie liniowe wśród liczb naturalnych
Poszukiwanie liniowe wśród liczb naturalnych Wiele problemów, dotyczących liczb naturalnych, można rozwiązać idąc w góręodzera(lubczasemodinnejliczby)isprawdzając,czyjuż. Przykład: (zadane reszty z dzielenia)
Efektywna metoda sortowania sortowanie przez scalanie
Efektywna metoda sortowania sortowanie przez scalanie Rekurencja Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Metoda dziel i zwycięŝaj Dzielimy
Wybrane metody przybliżonego. wyznaczania rozwiązań (pierwiastków) równań nieliniowych
Wykład trzeci 1 Wybrane metody przybliżonego wyznaczania rozwiązań pierwiastków równań nieliniowych 2 Metody rozwiązywania równań nieliniowych = 0 jest unkcją rzeczywistą zmiennej rzeczywistej Rozwiązanie
Zadania do samodzielnego rozwiązania
Zadania do samodzielnego rozwiązania I. Podzielność liczb całkowitych 1. Pewna liczba sześciocyfrowa a kończy się cyfrą 5. Jeśli tę cyfrę przestawimy na miejsce pierwsze ze strony lewej, to otrzymamy nową
PRZEDMIOTOWY SYSTEM OCENIANIA INFORMATYKA.
PRZEDMIOTOWY SYSTEM OCENIANIA INFORMATYKA. KLASA 3e I. Główne założenia PSO Ocenianie uczniów na lekcjach informatyki: spełnia założenia wewnątrzszkolnego systemu oceniania; powinno być systematyczne;
Metody 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
Programowanie Równoległe i Rozproszone. Algorytm Kung a. Algorytm Kung a. Programowanie Równoległe i Rozproszone Wykład 8. Przygotował: Lucjan Stapp
Programowanie Równoległe i Rozproszone Lucjan Stapp Wydział Matematyki i Nauk Informacyjnych Politechnika Warszawska (l.stapp@mini.pw.edu.pl) 1/34 PRiR Algorytm Kunga Dany jest odcinek [a,b] i ciągła funkcja
1.1. Uzupełnij poniższą tabelę: i wynik(i)
Zadanie 1. Krzysztof, Kamil Wiązka zadań Ciągi rekurencyjne Dana jest następująca funkcja rekurencyjna: funkcja wynik( i ) jeżeli i < 3 zwróć 1 i zakończ; w przeciwnym razie jeżeli i mod 2 = 0 zwróć wynik(i
1 Równania nieliniowe
1 Równania nieliniowe 1.1 Postać ogólna równania nieliniowego Często występującym, ważnym problemem obliczeniowym jest numeryczne poszukiwanie rozwiązań równań nieliniowych, np. algebraicznych (wielomiany),
Struktury Danych i Złożoność Obliczeniowa
Struktury Danych i Złożoność Obliczeniowa Zajęcia 2 Algorytmy wyszukiwania, sortowania i selekcji Sortowanie bąbelkowe Jedna z prostszych metod sortowania, sortowanie w miejscu? Sortowanie bąbelkowe Pierwsze
Algorytmy przeszukiwania
Algorytmy przeszukiwania Przeszukiwanie liniowe Algorytm stosowany do poszukiwania elementu w zbiorze, o którym nic nie wiemy. Aby mieć pewność, że nie pominęliśmy żadnego elementu zbioru przeszukujemy
Algorytmy. 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
Wstęp do informatyki Ćwiczenia. Piotr Fulmański
Wstęp do informatyki Ćwiczenia Piotr Fulmański Piotr Fulmański 1 e-mail 1: fulmanp@math.uni.lodz.pl Wydział Matematyki i Informatyki, Uniwersytet Łódzki Banacha 22, 90-238, Łódź Polska Data ostaniej modyfikacji:
Rekurencja/rekursja. Iluzja istnienia wielu kopii tego samego algorytmu (aktywacji) Tylko jedna aktywacja jest aktywna w danej chwili
rekurencja 1 Rekurencja/rekursja Alternatywny dla pętli sposób powtarzania pewnych czynności; kolejny etap podzadanie poprzedniego Rekursja może być zamieniona na iteracje Cechy rekurencji Rozłożenie problemu
Algorytmy i Struktury Danych.
Algorytmy i Struktury Danych. Problem Sortowania. Metoda Dziel i zwyciężaj - cd. dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 5 Bożena Woźna-Szcześniak (AJD) Algorytmy
2:8,7 3:9,4 / \ / \ / \ / \ 4:7,3 5:8 6:9,2 7:4
Wykład: Sortowanie III Drzewa Turniejowe 1:9,8 2:8,7 3:9,4 4:7,3 5:8 6:9,2 7:4 8: 3 9:7 12:9 13:2 Insert(x,S) 1) tworzymy dwa nowe liście na ostatnim poziomie, 2) do jednego wstawiamy x a do drugiego wartość
Wykład 4. Sortowanie
Wykład 4 Sortowanie 1 Sortowanie - zadanie Definicja (dla liczb): wejście: ciąg n liczb A = (a 1, a 2,, a n ) wyjście: permutacja (a 1,, a n ) taka, że a 1 a n Po co sortować? Podstawowy problem dla algorytmiki
Wykł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
Problemy porządkowe zadania
Problemy porządkowe Problemy porządkowe zadania Problemy porządkowe to zbiór różnych zadań obliczeniowych związanych z porządkowaniem zbioru danych i wyszukiwaniem informacji na takim zbiorze. Rodzaje
Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.
Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1. Grażyna Koba MIGRA 2019 Spis treści (propozycja na 2*32 = 64 godziny lekcyjne) Moduł A. Wokół komputera i sieci komputerowych
Programowanie Funkcyjne. Marcin Kubica Świder,
Programowanie Funkcyjne Marcin Kubica Świder, 28-04-2015 Czym jest programowanie funkcyjne? Obliczalne pojęcia matematyczne. Definicje stałych i funkcji i relacji. Wszystkie definicje są konstruktywne,
Algorytmy sortujące 1
Algorytmy sortujące 1 Sortowanie Jeden z najczęściej występujących, rozwiązywanych i stosowanych problemów. Ułożyć elementy listy (przyjmujemy: tablicy) w rosnącym porządku Sortowanie może być oparte na
Zł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
PROSTE RACHUNKI WYKONYWANE ZA POMOCĄ KOMPUTERA
PROSTE RACHUNKI WYKONYWANE ZA POMOCĄ KOMPUTERA WPROWADZENIE DO ALGORYTMIKI Maciej M. Sysło Uniwersytet Wrocławski Uniwersytet UMK w Toruniu syslo@ii.uni.wroc.pl informatyka + 2 Algorytm, algorytmika Algorytm
Złożoność algorytmów. Wstęp do Informatyki
Złożoność algorytmów Złożoność pamięciowa - liczba i rozmiar struktur danych wykorzystywanych w algorytmie Złożoność czasowa - liczba operacji elementarnych wykonywanych w trakcie przebiegu algorytmu Złożoność
Metody numeryczne. dr Artur Woike. Ćwiczenia nr 2. Rozwiązywanie równań nieliniowych metody połowienia, regula falsi i siecznych.
Ćwiczenia nr 2 metody połowienia, regula falsi i siecznych. Sformułowanie zagadnienia Niech będzie dane równanie postaci f (x) = 0, gdzie f jest pewną funkcją nieliniową (jeżeli f jest liniowa to zagadnienie
Wstę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
Rekurencja. Przykład. Rozważmy ciąg
Rekurencja Definicje rekurencyjne Definicja: Mówimy, iż ciąg jest zdefiniowany rekurencyjnie, jeżeli: (P) Określony jest pewien skończony zbiór wyrazów tego ciągu, zwykle jest to pierwszy wyraz tego ciągu