WYSZUKIWANIE I PORZĄDKOWANIE INFORMACJI



Podobne dokumenty
ALGORYTMY POSZUKIWANIA I PORZĄDKOWANIA ELEMENTY JĘZYKA PROGRAMOWANIA

PORZĄDEK WŚRÓD INFORMACJI

CZY WSZYSTKO MOŻNA POLICZYĆ NA KOMPUTERZE

CZY WSZYSTKO MOŻNA POLICZYĆNA KOMPUTERZE

PROSTE RACHUNKI WYKONYWANE ZA POMOCĄ KOMPUTERA

TECHNIKI ALGORYTMICZNE przybliżone i dokładne

Wszechnica Popołudniowa: Algorytmika i programowanie Porządek wśród informacji kluczem do szybkiego wyszukiwania. Maciej M Sysło

Porządek wśród informacji kluczem do szybkiego wyszukiwania

Luty 2001 Algorytmy (4) 2000/2001

Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Wszechnica Informatyczna: Algorytmika i programowanie Algorytmy poszukiwania i porządkowania. Elementy języka programowania.

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

WYMAGANIA EDUKACYJNE Z INFORMATYKI dla klasy III gimnazjalnej, Szkoły Podstawowej w Rychtalu

Programowanie w VB Proste algorytmy sortowania

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja I

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja II

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

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.

Wybrane wymagania dla informatyki w gimnazjum i liceum z podstawy programowej

WYMAGANIA EDUKACYJNE

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

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

Algorytmika i pseudoprogramowanie

Informatyka klasa III Gimnazjum wymagania na poszczególne oceny

Z nowym bitem. Informatyka dla gimnazjum. Część II

Sortowanie danych. Jolanta Bachan. Podstawy programowania

Znajdowanie największego i najmniejszego elementu w zbiorze n liczb całkowitych

Analiza algorytmów zadania podstawowe

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Definicje. Algorytm to:

Podstawowe algorytmy i ich implementacje w C. Wykład 9

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

Sortowanie przez scalanie

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

Jeszcze o algorytmach

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

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

kształcenia pozaszkolnego WMiI Uni Wrocław, WMiI UMK Toruń

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Algorytmy. Programowanie Proceduralne 1

Wykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL

Aktywizacja uczniów w ramach kształcenia pozaszkolnego. Maciej M. Sysło WMiI Uni Wrocław, WMiI UMK Toruń

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

WYMAGANIA EGZAMINACYJNE Egzamin maturalny z INFORMATYKI

ALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Luty 2001 Algorytmy (1) 2000/2001 1

Algorytmy. Programowanie Proceduralne 1

Wszechnica Popołudniowa: Algorytmika i programowanie Czy wszystko można policzyć na komputerze. Maciej M Sysło

Grażyna Koba, Poradnik metodyczny. Informatyka dla gimnazjum Program nauczania wymagania na oceny PRZEDMIOTOWY SYSTEM OCENIANIA KLASA II

Wszechnica Poranna: Algorytmika i programowanie Wprowadzenie do algorytmiki i programowania Ð wyszukiwanie i porządkowanie informacji

PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI

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

Laboratorium nr 7 Sortowanie

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

Program nauczania informatyki w gimnazjum Informatyka dla Ciebie. Modyfikacja programu klasy w cyklu 2 godzinnym

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

RÓŻNORODNE ALGORYTMY OBLICZEŃ I ICH KOMPUTEROWE REALIZACJE

Wprowadzenie do algorytmiki

Algorytm. Krótka historia algorytmów

KOŁO MATEMATYCZNE LUB INFORMATYCZNE - klasa III gimnazjum, I LO

Roman Mocek Zabrze Opracowanie zbiorcze ze źródeł Scholaris i CKE

Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to

1 Wprowadzenie do algorytmiki

Algorytmy przeszukiwania

Programowanie i techniki algorytmiczne

Algorytmy sortujące i wyszukujące

Innowacja pedagogiczna dla uczniów pierwszej klasy gimnazjum Programowanie

Programowanie od pierwszoklasisty do maturzysty. Grażyna Koba

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 )

Temat 20. Techniki algorytmiczne

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

Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI

Podstawy Programowania Algorytmy i programowanie

Opis założonych osiągnięć ucznia wymagania na poszczególne oceny szkolne dla klasy VIII. Opracowano w oparciu o pomoce naukowe Migra (

Algorytmy i struktury danych

Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji.

Technologie informacyjne - wykład 12 -

1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji.

Opis problemu i przedstawienie sposobu jego rozwiązania w postaci graficznej. Gimnazjum nr 3 im. Jana Pawła II w Hrubieszowie 1

Nowa Podstawa programowa z informatyki. Konferencja metodyczna Radom, 7 grudnia 2016

Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika

Algorytmy i Struktury Danych.

EGZAMIN MATURALNY W ROKU SZKOLNYM 2017/2018 INFORMATYKA

Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI

Podstawy Programowania 1 Sortowanie tablic jednowymiarowych. Plan. Sortowanie. Sortowanie Rodzaje sortowania. Notatki. Notatki. Notatki.

Sortowanie Shella Shell Sort

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

Informatyka A. Algorytmy

Algorytmy, reprezentacja algorytmów.

Algorytmy komputerowe. dr inŝ. Jarosław Forenc

Algorytmy i schematy blokowe

INFORMATYKA SORTOWANIE DANYCH.

1. Algorytmika. WPROWADZENIE DO ALGORYTMIKI Wprowadzenie do algorytmów. Pojęcie algorytmu.

Część I. Uwaga: Akceptowane są wszystkie odpowiedzi merytorycznie poprawne i spełniające warunki zadania. Zadanie 1.1. (0 3)

Wstęp do programowania

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

Wymagania na poszczególne oceny szkolne dla klasy VI. (na podstawie Grażyny Koba, Teraz bajty. Informatyka dla szkoły podstawowej.

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

Wymagania edukacyjne z informatyki dla uczniów klas VI SP nr 53 w Krakowie w roku szkolnym 2019/2020

KARTA KURSU. Wstęp do programowania

Transkrypt:

WYSZUKIWANIE I PORZĄDKOWANIE INFORMACJI WPROWADZENIE DO ALGORYTMIKI Maciej M. Sysło Uniwersytet Wrocławski Uniwersytet UMK w Toruniu syslo@ii.uni.wroc.pl informatyka + 2

Algorytm, algorytmika Algorytm opis rozwiązania krok po kroku postawionego problemu lub sposobu osiągnięcia jakiegoś celu Pierwszy algorytm algorytm Euklidesa 300 p.n.e algorytm od Muhammad ibn Musa al-chorezmi IX w. Algorytmika dziedzina zajmująca się algorytmami i ich własnościami informatyka + 3

Algorytmy a informatyka Informatyka jedna z definicji: dziedzina wiedzy i działalności zajmująca się algorytmami Czy zajmuje się też algorytmami kulinarnymi? Donald E. Knuth: Ralf Gomory (IBM): Mówi się często, że człowiek dotąd nie zrozumie czegoś, zanim nie nauczy tego kogoś innego. W rzeczywistości, człowiek nie zrozumie czegoś (algorytmu) naprawdę, zanim nie zdoła nauczyć tego komputera. Najlepszym sposobem przyspieszania komputerów jest obarczanie ich mniejszą liczbą działań (szybszymi algorytmami) informatyka + 4

Algorytmiczne rozwiązywanie problemu Dla problemu chcemy otrzymać rozwiązanie komputerowe, które jest: zrozumiałe dla każdego, kto zna problemu poprawne, czyli spełnia specyfikację (opis) problemu efektywne, czyli nie marnuje czasu i pamięci Metoda rozwiązywania: analiza sytuacji problemowej sporządzenie specyfikacji: wykaz danych, wyników i relacji projekt rozwiązania komputerowa realizacja rozwiązania implementacja testowanie poprawności rozwiązania dokumentacja i prezentacja rozwiązania informatyka + 5

Rozwiązywanie problemów z pomocą komputerów Objaśnienie dwóch terminów: Problem: problem, gdy nie podano nam, jak należy go rozwiązać, ale wiemy wystarczająco, by poradzić sobie z nim a więc, problem jest dla każdego nie tylko dla orłów Programowanie: komputery wykonują tylko programy cokolwiek uruchamiamy na komputerze: Google, dokument w Word, arkusz w Excel, naciśnięcie klawisza jest programem każdy widoczny i niewidoczny efekt działania komputera to wynik działania jakiegoś programu Konkluzja: powinniśmy lepiej poznać programowanie komputerów informatyka + 6

Myślenie algorytmiczne Myślenie komputacyjne (ang. computational thinking) Reklama firmy IBM z 1924 roku Komputer to maszyna do myślenia!!! informatyka + 7

Problemy, algorytmy i ich komputerowe realizacje (implementacje) Plan: Pierwszy algorytm przeszukiwanie zbioru schematy blokowe algorytm optymalny Kompletowanie podium zwycięzców turnieju Jednoczesne znajdowanie najmniejszego i największego elementu zasada dziel i zwyciężaj Porządkowanie przez wybór iteracja algorytmu Poszukiwanie informacji: w zbiorze nieuporządkowanym w zbiorze uporządkowanym informatyka + 8

Znajdowanie elementu w zbiorze Znajdź element w zbiorze: najwyższego ucznia w swojej klasie metoda spaghetti jak zmieni się Twój algorytm, jeśli chciałbyś znaleźć w klasie najniższego ucznia znajdź w swojej klasie ucznia, któremu droga do szkoły zabiera najwięcej czasu znajdź najstarszego (lub najmłodszego) ucznia w swojej szkole znajdź największą kartę w potasowanej talii kart znajdź najlepszego tenisistę w swojej klasie nie ma remisów znajdź najlepszego gracza w warcaby w swojej klasie możliwe są remisy Podstawowa operacja porównanie: dwóch liczb lub kombinacji liczb (data, karty): czy x < y? dwóch zawodników: rozegranie meczu informatyka + 9

Specyfikacja problemu Specyfikacja problemu dokładne opisanie problemu Problem Min Znajdowanie najmniejszego elementu w zbiorze Dane: Liczba naturalna n i zbiór n liczb dany w ciągu x 1, x 2,..., x n Wynik: Najmniejsza wśród liczb x 1, x 2,..., x n oznaczmy ją min Metoda rozwiązania: przeszukiwanie liniowe od lewej do prawej Algorytm Min Znajdowanie najmniejszego elementu w zbiorze Krok 1. Przyjmij za min pierwszy element w zbiorze (w ciągu), czyli przypisz min := x 1. imin := 1 Krok 2. Dla kolejnych elementów x i, gdzie i = 2, 3,..., n, jeśli min > x i, to przypisz min := x i. imin := i Algorytm Max prosta modyfikacja: zamiana > na < Wyznaczanie imin indeksu elementu o wartości min informatyka + 10

Algorytm Min demo Demonstracja przeszukiwania od lewej do prawej: informatyka + 11

(Zgrubny) schemat blokowy algorytmu Min Krok 1: min pierwszy element ze zbioru A Instrukcje warunkowe: rozgałęzienia algorytmu Krok 2: Czy porównano wszystkie elementy ze zbioru A? Instrukcja iteracyjna Tak Koniec algorytmu Nie x kolejny element ze zbioru A Tak min x min > x? Nie Ada Augusta, córka Byrona, uznawana powszechnie za pierwszą programistkę komputerów, przełomowe znaczenie maszyny analitycznej Ch. Babbage a, pierwowzoru dzisiejszych komputerów, upatrywała właśnie w możliwości wielokrotnego wykonywania przez nią danego ciągu instrukcji, z liczbą powtórzeń z góry zadaną lub zależną od wyników obliczeń, a więc w iteracji. informatyka + 12

Pełny schemat blokowy algorytmu Min informatyka + 13

Skomputeryzowany schemat blokowy Schemat blokowy wykonany w programie ELI Iteracja Wprowadzanie danych Ciąg (tablica) z danymi Bloki warunkowe informatyka + 14

Algorytm Min w postaci programu Program w języku Pascal program Min; var i,imin,min,n,x:integer; begin read(n); read(x); min:=x; imin:=1; for i:=2 to n do begin read(x); if min > x then begin min:=x; imin:=i end end; write(imin,min) end. nazwa programu deklaracje, typy zmiennych blok programu początek czytaj n czytaj pierwszy element iteracja od 2 do n czytaj kolejny element instrukcja warunkowa popraw min instrukcja war. koniec iteracja koniec pisz wynik blok programu koniec informatyka + 15

Warsztaty Algorytm, język programowania, komputer Proces komputerowej realizacji algorytmu: Opis algorytmu Zapis w języku programowania (Pascal, C++) Przetłumaczenie na język zrozumiały przez komputer Wykonanie Testowanie informatyka + 16

Pracochłonność algorytmu Min Porównanie podstawowa operacja w algorytmie Min. Pracochłonność (złożoność obliczeniowa) algorytmu liczba podstawowych operacji wykonywanych przez algorytm. Pytanie: Ile porównań wykonuje algorytm Min? Odpowiedź: o jedno mniej niż jest elementów, czyli n 1 Pytania: Czy można szybciej? Czy istnieje szybszy algorytm znajdowania min? A może metoda pucharowa wyłaniania zwycięzcy w turnieju jest szybsza? informatyka + 17

Wyłanianie najlepszego zawodnika w turnieju czyli inny sposób znajdowania max (lub min) Porównania mecze Tomek Ośmiu zawodników: 7 meczy n zawodników: n 1 meczy a więc nie jest szybsza Bartek Tomek Bartek Witek Tomek Tolek Bartek Romek Bolek Witek Tomek Zenek Tolek Felek informatyka + 18

A może mamy algorytm najlepszy? Podsumowanie: Mamy dwa algorytmy znajdowania min lub max: przeszukiwanie liniowe rozegranie turnieju które na zbiorze n elementów wykonują n 1 porównań Może nie ma szybszego algorytmu? TAK! Hugo Steinhaus tak to uzasadnił: Jeśli Tomek jest zwycięzcą turnieju, w którym startuje n zawodników, to każdy inny spośród n 1 zawodników musiał przegrać przynajmniej raz, a zatem rozegrano przynajmniej n 1 meczy. Zatem każdy algorytm musi wykonać przynajmniej n 1 porównań, czyli nasze algorytmy są najszybsze są optymalne. informatyka + 19

A jak znaleźć drugiego najlepszego zawodnika w turnieju? Czy jest nim Bartek? Bo przegrał z Tomkiem? Tomek Ale Bartek nie grał z drugą połową! Bartek Tomek??? Tylko dwa dodatkowe mecze! Bartek Witek Tomek??? Tolek Bartek Romek Bolek Witek Tomek Zenek Tolek Felek informatyka + 20

Jednoczesne znajdowanie min i max Obserwacja: jeśli x y, to x kandydatem na min, a y kandydatem na max Algorytm dziel i zwyciężaj : Krok 1. Podział na kandydatów na min i kandydatów na max Kandydaci na max Porównania parami Kandydaci na min 3 2 5 3? 1 2? 2 5? 3 4? 8 2? 5 1 2 3 4 2 8 5 max = 8 min = 1 Krok 2. Znajdź min i max Liczba porównań: algorytm naiwny: n 1 (min) + n 2 (max) = 2n 3 algorytm dziel i zwyciężaj: n/2(podział)+ (n/2 1)(min) + (n/2 1)(max) ok. 3n/2 2 jest to algorytm optymalny informatyka + 21

Problem porządkowania (sortowania) Problem porządkowania (sortowania) Dane: Liczba naturalna n i ciąg n liczb x 1, x 2,..., x n Wynik: Uporządkowanie tego ciągu liczb od najmniejszej do największej Algorytm: porządkowanie przez wybór Selection Sort Idea: najmniejszy wśród nieuporządkowanych daj na początek Krok 1. Dla i = 1, 2,..., n 1 wykonaj kroki 2 i 3, a następnie zakończ algorytm Krok 2. Znajdź k takie, że x k jest najmniejszym elementem w ciągu x i,..., x n Krok 3. Zamień miejscami elementy x i oraz x k informatyka + 22

Porządkowanie przez wybór demo (1) Żółte podciąg już uporządkowany Zielone i czerwone podciąg porządkowany informatyka + 23

Porządkowanie przez wybór demo (2) Podciąg już uporządkowany Podciąg porządkowany informatyka + 24

Złożoność porządkowania przez wybór Liczba zamian elementów w kolejnych krokach: 1 + 1 + 1 + + 1 = n 1 Liczba porównań w kolejnych krokach: Przykład n = 6 (n 1) + (n 2) + (n 3) + + 3 + 2 + 1 =? 5 4 3 2 1 6 = n 5 = n 1 Pole prostokąta: 5 x 6 Suma = pole czarnych diamentów: 5 x 6 informatyka + 25 2 Ogólnie suma: (n 1) x n 2 Liczby trójkątne

Poszukiwanie elementu w zbiorze Problem poszukiwania elementu w zbiorze Dane: Zbiór elementów w postaci ciągu n liczb x 1, x 2,..., x n. Wyróżniony element y Wynik: Jeśli y należy do tego zbioru, to podaj jego miejsce (indeks) w ciągu, a w przeciwnym razie sygnalizuj brak takiego elementu w zbiorze wstaw y do ciągu Dwa przypadki: Nieuporządkowany ciąg liczb x 1, x 2,..., x n Uporządkowany ciąg liczb x 1, x 2,..., x n Nasz cel: Jakie są korzyści z uporządkowania? Jak utrzymywać porządek wśród informacji? informatyka + 26

Poszukiwania w zbiorze nieuporządkowanym Algorytm Poszukiwanie liniowe Krok 1. Dla i = 1, 2,..., n, jeśli x i = y, to przejdź do kroku 3. Krok 2. Komunikat: W ciągu danych nie ma elementu równego y. Zakończ algorytm: wynik: 1 Krok 3. Element równy y znajduje się na miejscu i w ciągu danych. Zakończ algorytm: wynik: i begin i:=1; while (x[i]<>y) and (i<n) do i:=i+1; if x[i]=y then PrzeszukiwanieLiniowe:=i else PrzeszukiwanieLiniowe:=-1 end Pewna niedogodność sprawdzanie, czy koniec ciągu. informatyka + 27

Poszukiwania w zbiorze nieuporządkowanym z wartownikiem Algorytm Poszukiwanie liniowe z wartownikiem Takie same kroki algorytmu inna implementacja, czyli komputerowa realizacja: na końcu ciągu: begin x 1 x 2 x 3 x 4 x n x n+1 wstawiamy wartownika pilnuje końca ciągu i:=1; Nie ma sprawdzania, x[n+1]:=y; czy koniec ciągu while x[i]<>y do i:=i+1; if i<=n then PrzeszukiwanieLinioweWartownik:=i else PrzeszukiwanieLinioweWartownik:=-1 end informatyka + 28

Poszukiwanie w zbiorze uporządkowanym Zabawa w zgadywanie liczby Zgadywana liczba: 17 w przedziale [1 : 20] Metoda: połowienia przedziału Kolejne kroki: strzałka wskazuje wybór; kolor czerwony ciąg do przeszukania: informatyka + 29

Poszukiwanie przez połowienie w ciągu uporządkowanym function PrzeszukiwanieBinarne(x:tablicax; k,l:integer; y:integer):integer; {Przeszukiwanie binarne ciagu x[k..l] w poszukiwaniu elementu y.} var Lewy,Prawy,Srodek:integer; begin Lewy:=k; Prawy:=l; while Lewy<=Prawy do begin Srodek:=(Lewy+Prawy) div 2; if x[srodek]=y then begin PrzeszukiwanieBinarne:=Srodek; exit end; {element y nalezy do przeszukiwanego ciagu} if x[srodek]<y then Lewy:=Srodek+1 else Prawy:=Srodek-1 end; PrzeszukiwanieBinarne:=-1 end Początkowe końce przedziału Połowienie przedziału y należy do przedziału Zmiana końców przedziału y nie należy do przeszukiwanego przedziału informatyka + 30

Umieszczanie przez połowienie w ciągu uporządkowanym Dane: Uporządkowany ciąg liczb w tablicy x[k..l] oraz element y Wynik: Miejsce dla y w ciągu x[k..l] takie, aby po wstawieniu y ciąg nadal był uporządkowany Algorytm: y wstawiamy do przeszukiwanego ciągu w to miejsce, gdzie algorytm poszukiwania kończy działanie, a więc tam, gdzie jest y (jeśli y jest już w ciągu), albo gdzie powinien być. informatyka + 31

Poszukiwanie przez połowienie złożoność Liczba kroków w algorytmie połowienia: Ile razy należy przepołowić ciąg o danej długości, aby znaleźć element lub miejsce dla niego? Przykład dla n = 1200 Kolejne długości ciągu: 1200, 600, 300, 150, 75, 38, 19, 10, 5, 3, 2, 1 11 razy dzielono ciąg o długości 1200, by pozostał 1 element Liczba porównań w algorytmach poszukiwania dla n = 1200: przez połowienie 11 liniowy 1200 Porównaj, jaka jest potęga uporządkowania!!! informatyka + 32

Dla n = 1200 liczba porównań w algorytmie połowienia wyniosła 11 Pytania: Poszukiwanie przez połowienie złożoność dla orłów Jak liczba porównań zależy od n? Jak dobry jest to algorytm? Liczba porównań dla różnych n: n liczba porównań 100 7 1000 10 10000 14 100000 17 1000000 20 10000000 24 ok.log 2 n Algorytm poszukiwania przez połowienie jest optymalny, czyli najszybciej przeszukuje zbiory uporządkowane. Funkcja logarytm, bardzo ważna w algorytmice logarytm to anagram od algorytm informatyka + 33

Pokrewne zajęcia w Projekcie Informatyka + Wykład+Warsztaty (Wszechnica Poranna): Wprowadzenie do algorytmiki i programowania wyszukiwanie i porządkowanie informacji Proste rachunki wykonywane za pomocą komputera. Techniki algorytmiczne przybliżone (heurystyczne) i dokładne. Wykłady (Wszechnica Popołudniowa): Czy wszystko można policzyć na komputerze? Porządek wśród informacji kluczem do szybkiego wyszukiwania. Dlaczego możemy się czuć bezpieczni w sieci, czyli o szyfrowaniu informacji. Znajdowanie najkrótszych dróg, najniższych drzew, najlepszych małżeństw informatyka + 34

Pokrewne zajęcia w Projekcie Informatyka + Kursy (24 godz.) Wszechnica na Kołach: Algorytmy poszukiwania i porządkowania. Elementy języka programowania Różnorodne algorytmy obliczeń i ich komputerowe realizacje Grafy, algorytmy grafowe i ich komputerowe realizacje Kursy (24 godz.) Kuźnia Informatycznych Talentów KIT dla Orłów: Przegląd podstawowych algorytmów Struktury danych i ich wykorzystanie Zaawansowane algorytmy Tendencje Wykłady Algorytmy w Internecie, K. Diks Czy P = NP, czyli jak wygrać milion dolarów w Sudoku, J. Grytczuk Między przeszłością a przyszłość informatyki, M.M Sysło informatyka + 35