zajęcia 3. Marcin Andrychowicz, Tomasz Kulczyński,

Podobne dokumenty
zajęcia 1. Bartosz Górski, Tomasz Kulczyński, Błażej Osiński

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

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

Sortowanie w czasie liniowym

TEORETYCZNE PODSTAWY INFORMATYKI

Temat: Algorytmy zachłanne

Programowanie dynamiczne

Algorytmy. 1. Sortowanie 2. Statki i okręty. programowanie cz.7. poniedziałek, 2 marca 2009

Programowanie w VB Proste algorytmy sortowania

INFORMATYKA SORTOWANIE DANYCH.

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

Jeszcze o algorytmach

Analiza algorytmów zadania podstawowe

Algorytmy Grafowe. dr hab. Bożena Woźna-Szcześniak, prof. UJD. Wykład 5 i 6. Uniwersytet Humanistyczno-Przyrodniczy im. Jana Długosza w Częstochowie

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

Programowanie dynamiczne i algorytmy zachłanne

Sortowanie danych. Jolanta Bachan. Podstawy programowania

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

Wstęp do programowania

Algorytmy sortujące i wyszukujące

Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury.

Wykład 2. Poprawność algorytmów

Wstęp do programowania

Programowanie od pierwszoklasisty do maturzysty. Grażyna Koba

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski

Zasady analizy algorytmów

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.

Algorytmy i Struktury Danych.

Kolokwium ze wstępu do informatyki, I rok Mat. (Ściśle tajne przed godz. 10 : grudnia 2005.)

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

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

Macierze. Rozdział Działania na macierzach

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane

Wykład 4. Sortowanie

B jest liniowo niezależny V = lin (B) 1. Układ pusty jest bazą przestrzeni trywialnej {θ}. a i v i = i I. b i v i, (a i b i ) v i = θ.

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

Rozwiązywanie układów równań liniowych

Algorytmy i Struktury Danych.

Struktury Danych i Złożoność Obliczeniowa

Algorytmy przeszukiwania

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Sortowanie - wybrane algorytmy

PROBLEM: SORTOWANIE PRZEZ ODWRÓCENIA METODA: ALGORYTMY ZACHŁANNE

Wykład 2. Informatyka Stosowana. 9 października Informatyka Stosowana Wykład 2 9 października / 42

Wykład 2. Informatyka Stosowana. 10 października Informatyka Stosowana Wykład 2 10 października / 42

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.

złożony ze słów zerojedynkowych o długości co najmniej 3, w których druga i trzecia litera od końca sa

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium Nr 4

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

Algorytmy Równoległe i Rozproszone Część II - Sieci porównujące

Wstęp do programowania

Sortowanie topologiczne skierowanych grafów acyklicznych

Algorytmy i struktury danych Sortowanie IS/IO, WIMiIP

Algorytmy i złożoności. Wykład 3. Listy jednokierunkowe

Wykład 3. Metoda dziel i zwyciężaj

Algorytmy i Struktury Danych. (c) Marcin Sydow. Sortowanie Selection Sort Insertion Sort Merge Sort. Sortowanie 1. Listy dowiązaniowe.

Kolumna Zeszyt Komórka Wiersz Tabela arkusza Zakładki arkuszy

Laboratorium nr 7 Sortowanie

Kurs II, zajęcia 1. Tomasz Kulczyński, Błażej Osiński, Wojciech Śmietanka. Stos, kolejka i lista. Stos. Kolejka. Lista dwukierunkowa

Jednym z najprostszych sposobów porządkowania jest technika stosowana przy sortowaniu listów:

Programowanie Proceduralne

PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI

ZADANIE 1. Ważenie (14 pkt)

Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.

Sortowanie zewnętrzne

Przykładowe sprawozdanie. Jan Pustelnik

Informatyka A. Algorytmy

Układy równań liniowych

Wstęp do metod numerycznych Eliminacja Gaussa Równania macierzowe. P. F. Góra

EGZAMIN MATURALNY W ROKU SZKOLNYM 2017/2018 INFORMATYKA

Sortowanie przez scalanie

WYKŁAD 9. Algorytmy sortowania elementów zbioru (tablic) Programy: c4_1.c... c4_3.c. Tomasz Zieliński

Algorytmy sortujące. Sortowanie bąbelkowe

Algorytmy i Struktury Danych, 2. ćwiczenia

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 9 Rekurencja

Teoretyczne podstawy informatyki

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,

ANALIZA ALGORYTMÓW. Analiza algorytmów polega między innymi na odpowiedzi na pytania:

Sortowanie. Bartman Jacek Algorytmy i struktury

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy

Sprzedaż online. Piotr Sankowski Uniwersytet Warszawski Warszawa p. 1/40

Algorytmy i Struktury Danych

Twój wynik: 4 punktów na 6 możliwych do uzyskania (66,67 %).

0-0000, , , itd

INFORMATYKA POZIOM ROZSZERZONY

Strategia "dziel i zwyciężaj"

Podstawowe struktury danych

Matematyczne Podstawy Informatyki

Metody probabilistyczne

wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.)

Word. Korespondencja seryjna

Algorytmy stochastyczne laboratorium 03

Sortowanie przez wstawianie Insertion Sort

Wyk lad 9 Baza i wymiar przestrzeni liniowej

Rozdział 4. Macierze szyfrujące. 4.1 Algebra liniowa modulo 26

Metoda eliminacji Gaussa

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

Wyk lad 12. (ii) najstarszy wspó lczynnik wielomianu f jest elementem odwracalnym w P. Dowód. Niech st(f) = n i niech a bedzie

Transkrypt:

zajęcia 3. Marcin Andrychowicz, Tomasz Kulczyński, Błażej Osiński

Dane Metoda pozwalajaca sortować w czasie liniowym Ciag liczb z zakresu O, 1,..., M 5, 1, 4, 5, 1, 0, 4, 5, 1, 3, 5 Zliczamy wystapienia 0, 1, itd. aż do M. Pomocnicza tablica c i 0 1 2 3 4 5 c[i] 1 3 0 1 2 4

Dane Metoda pozwalajaca sortować w czasie liniowym Ciag liczb z zakresu O, 1,..., M 5, 1, 4, 5, 1, 0, 4, 5, 1, 3, 5 Zliczamy wystapienia 0, 1, itd. aż do M. Pomocnicza tablica c i 0 1 2 3 4 5 c[i] 1 3 0 1 2 4

Dane Metoda pozwalajaca sortować w czasie liniowym Ciag liczb z zakresu O, 1,..., M 5, 1, 4, 5, 1, 0, 4, 5, 1, 3, 5 Zliczamy wystapienia 0, 1, itd. aż do M. Pomocnicza tablica c i 0 1 2 3 4 5 c[i] 1 3 0 1 2 4

Pomocnicza tablica c Wynik i 0 1 2 3 4 5 c[i] 1 3 0 1 2 4 Wstawiamy c[0] zer, c[1] jedynek, itd. 0, 1, 1, 1, 3, 4, 4, 5, 5, 5, 5

Pomocnicza tablica c Wynik i 0 1 2 3 4 5 c[i] 1 3 0 1 2 4 Wstawiamy c[0] zer, c[1] jedynek, itd. 0, 1, 1, 1, 3, 4, 4, 5, 5, 5, 5

Pomocnicza tablica c Wynik i 0 1 2 3 4 5 c[i] 1 3 0 1 2 4 Wstawiamy c[0] zer, c[1] jedynek, itd. 0, 1, 1, 1, 3, 4, 4, 5, 5, 5, 5

Pomocnicza tablica c Wynik i 0 1 2 3 4 5 c[i] 1 3 0 1 2 4 Wstawiamy c[0] zer, c[1] jedynek, itd. 0, 1, 1, 1, 3, 4, 4, 5, 5, 5, 5

Pomocnicza tablica c Wynik i 0 1 2 3 4 5 c[i] 1 3 0 1 2 4 Wstawiamy c[0] zer, c[1] jedynek, itd. 0, 1, 1, 1, 3, 4, 4, 5, 5, 5, 5

Pomocnicza tablica c Wynik i 0 1 2 3 4 5 c[i] 1 3 0 1 2 4 Wstawiamy c[0] zer, c[1] jedynek, itd. 0, 1, 1, 1, 3, 4, 4, 5, 5, 5, 5

Pomocnicza tablica c Wynik i 0 1 2 3 4 5 c[i] 1 3 0 1 2 4 Wstawiamy c[0] zer, c[1] jedynek, itd. 0, 1, 1, 1, 3, 4, 4, 5, 5, 5, 5

Dodatkowe wymaganie Tablica o M-elementach. Nie zawsze można pozwolić sobie na zużycie takiej ilości pamięci! Złożoność czasowa Zależy od: n - długości ciagu M - zakresu liczb O(n + M) - złożoność liniowa.

Dodatkowe wymaganie Tablica o M-elementach. Nie zawsze można pozwolić sobie na zużycie takiej ilości pamięci! Złożoność czasowa Zależy od: n - długości ciagu M - zakresu liczb O(n + M) - złożoność liniowa.

Dodatkowe wymaganie Tablica o M-elementach. Nie zawsze można pozwolić sobie na zużycie takiej ilości pamięci! Złożoność czasowa Zależy od: n - długości ciagu M - zakresu liczb O(n + M) - złożoność liniowa.

Dodatkowe wymaganie Tablica o M-elementach. Nie zawsze można pozwolić sobie na zużycie takiej ilości pamięci! Złożoność czasowa Zależy od: n - długości ciagu M - zakresu liczb O(n + M) - złożoność liniowa.

Dodatkowe wymaganie Tablica o M-elementach. Nie zawsze można pozwolić sobie na zużycie takiej ilości pamięci! Złożoność czasowa Zależy od: n - długości ciagu M - zakresu liczb O(n + M) - złożoność liniowa.

Dodatkowe wymaganie Tablica o M-elementach. Nie zawsze można pozwolić sobie na zużycie takiej ilości pamięci! Złożoność czasowa Zależy od: n - długości ciagu M - zakresu liczb O(n + M) - złożoność liniowa.

Przydatne pojęcia Definicja 1. nazywamy stabilnym gdy dwa równe elementu z ciagu, pozostawia w tym samym porzadku co przed wykonaniem algorytmu. sortowanie można uczynić stabilnym Definicja 2. Sufiksem słowa nazywamy pewna jego końcowa część np. racja jest sufiksem słowa demokracja

Przydatne pojęcia Definicja 1. nazywamy stabilnym gdy dwa równe elementu z ciagu, pozostawia w tym samym porzadku co przed wykonaniem algorytmu. sortowanie można uczynić stabilnym Definicja 2. Sufiksem słowa nazywamy pewna jego końcowa część np. racja jest sufiksem słowa demokracja

Problem Dane n słów k-literowych. Należy posortować je w kolejności j. Pomysł Sortujemy stabilnie względem liter na kolejnych pozycjach poczynajac od ostatniej, a kończac na pierwszej. Łacznie k sortowań.

Problem Dane n słów k-literowych. Należy posortować je w kolejności j. Pomysł Sortujemy stabilnie względem liter na kolejnych pozycjach poczynajac od ostatniej, a kończac na pierwszej. Łacznie k sortowań.

Kolejność sortowania Teza: Po wykonaniu k sortowań słowa sa uporzadkowane względem swoich k-literowych sufiksów. Dowód indukcyjny: Baza indukcji: sortowanie 1-literowych sufiksów. Krok indukcyjny: dwa przypadki: Różne litery aababca aabebca Te same litery aababaa aababab

Kolejność sortowania Teza: Po wykonaniu k sortowań słowa sa uporzadkowane względem swoich k-literowych sufiksów. Dowód indukcyjny: Baza indukcji: sortowanie 1-literowych sufiksów. Krok indukcyjny: dwa przypadki: Różne litery aababca aabebca Te same litery aababaa aababab

Kolejność sortowania Teza: Po wykonaniu k sortowań słowa sa uporzadkowane względem swoich k-literowych sufiksów. Dowód indukcyjny: Baza indukcji: sortowanie 1-literowych sufiksów. Krok indukcyjny: dwa przypadki: Różne litery aababca aabebca Te same litery aababaa aababab

Kolejność sortowania Teza: Po wykonaniu k sortowań słowa sa uporzadkowane względem swoich k-literowych sufiksów. Dowód indukcyjny: Baza indukcji: sortowanie 1-literowych sufiksów. Krok indukcyjny: dwa przypadki: Różne litery aababca aabebca Te same litery aababaa aababab

Kolejność sortowania Teza: Po wykonaniu k sortowań słowa sa uporzadkowane względem swoich k-literowych sufiksów. Dowód indukcyjny: Baza indukcji: sortowanie 1-literowych sufiksów. Krok indukcyjny: dwa przypadki: Różne litery aababca aabebca Te same litery aababaa aababab OK, dzięki stabilności.

Złożoność czasowa k-krotne uruchomienie sortowania Złożoność: O(k (n + Σ)) Σ - wielkość alfabetu....proporcjonalna do wielkości danych, czyli liniowa.

Złożoność czasowa k-krotne uruchomienie sortowania Złożoność: O(k (n + Σ)) Σ - wielkość alfabetu....proporcjonalna do wielkości danych, czyli liniowa.

Złożoność czasowa k-krotne uruchomienie sortowania Złożoność: O(k (n + Σ)) Σ - wielkość alfabetu....proporcjonalna do wielkości danych, czyli liniowa.

Metoda zachłanna Idea Wybieramy chwilowo (lokalnie) najlepsze możliwości, które utworza optymalne rozwiazanie.

Problem Kinoman ma do dyspozycji repertuar kina, z godzinami rozpoczęcia i zakończenia seansów. Jak powinien wybierać filmy by zobaczyć ich jak najwięcej? Rozwiazanie Należy zawsze wybierać film kończacy się najwcześniej. Dowód indukcyjny Oczywisty.

Problem Kinoman ma do dyspozycji repertuar kina, z godzinami rozpoczęcia i zakończenia seansów. Jak powinien wybierać filmy by zobaczyć ich jak najwięcej? Rozwiazanie Należy zawsze wybierać film kończacy się najwcześniej. Dowód indukcyjny Oczywisty.

Problem Kinoman ma do dyspozycji repertuar kina, z godzinami rozpoczęcia i zakończenia seansów. Jak powinien wybierać filmy by zobaczyć ich jak najwięcej? Rozwiazanie Należy zawsze wybierać film kończacy się najwcześniej. Dowód indukcyjny Oczywisty.

Problem Mamy do dyspozycji pewne nominały monet, chcielibyśmy wydać określona kwotę. Jak to zrobić za pomoca minimalnej liczby monet? Rozwiazanie Wybieramy zawsze monetę o największym nominale, która mieści się w wydawanej kwocie. Poprawność Kwota 12, dostępne nominały: 1, 4, 8, 10 Wynik algorytmu go: 10, 1, 1 Rozwiazanie optymalne: 8, 4 Strategia zachłanna jest niepoprawna!

Problem Mamy do dyspozycji pewne nominały monet, chcielibyśmy wydać określona kwotę. Jak to zrobić za pomoca minimalnej liczby monet? Rozwiazanie Wybieramy zawsze monetę o największym nominale, która mieści się w wydawanej kwocie. Poprawność Kwota 12, dostępne nominały: 1, 4, 8, 10 Wynik algorytmu go: 10, 1, 1 Rozwiazanie optymalne: 8, 4 Strategia zachłanna jest niepoprawna!

Problem Mamy do dyspozycji pewne nominały monet, chcielibyśmy wydać określona kwotę. Jak to zrobić za pomoca minimalnej liczby monet? Rozwiazanie Wybieramy zawsze monetę o największym nominale, która mieści się w wydawanej kwocie. Poprawność Kwota 12, dostępne nominały: 1, 4, 8, 10 Wynik algorytmu go: 10, 1, 1 Rozwiazanie optymalne: 8, 4 Strategia zachłanna jest niepoprawna!

Problem Mamy do dyspozycji pewne nominały monet, chcielibyśmy wydać określona kwotę. Jak to zrobić za pomoca minimalnej liczby monet? Rozwiazanie Wybieramy zawsze monetę o największym nominale, która mieści się w wydawanej kwocie. Poprawność Kwota 12, dostępne nominały: 1, 4, 8, 10 Wynik algorytmu go: 10, 1, 1 Rozwiazanie optymalne: 8, 4 Strategia zachłanna jest niepoprawna!

Problem Mamy do dyspozycji pewne nominały monet, chcielibyśmy wydać określona kwotę. Jak to zrobić za pomoca minimalnej liczby monet? Rozwiazanie Wybieramy zawsze monetę o największym nominale, która mieści się w wydawanej kwocie. Poprawność Kwota 12, dostępne nominały: 1, 4, 8, 10 Wynik algorytmu go: 10, 1, 1 Rozwiazanie optymalne: 8, 4 Strategia zachłanna jest niepoprawna!

Problem Mamy do dyspozycji pewne nominały monet, chcielibyśmy wydać określona kwotę. Jak to zrobić za pomoca minimalnej liczby monet? Rozwiazanie Wybieramy zawsze monetę o największym nominale, która mieści się w wydawanej kwocie. Poprawność Kwota 12, dostępne nominały: 1, 4, 8, 10 Wynik algorytmu go: 10, 1, 1 Rozwiazanie optymalne: 8, 4 Strategia zachłanna jest niepoprawna!

Problem Firma zwleka z wykonaniem n-zadań. Wykonanie i-tego zadania zajmuje d i dni, a za każdy dzień opóźnienia trzeba zapłacić z i złotych kary. W jakiej kolejności należy wykonywać zadania, by zapłacić jak najniższa karę? Nieoczywiste rozwiazanie Należy wybierać zadania względem malej acego współczynnika z i d i

Problem Firma zwleka z wykonaniem n-zadań. Wykonanie i-tego zadania zajmuje d i dni, a za każdy dzień opóźnienia trzeba zapłacić z i złotych kary. W jakiej kolejności należy wykonywać zadania, by zapłacić jak najniższa karę? Nieoczywiste rozwiazanie Należy wybierać zadania względem malej acego współczynnika z i d i

Dowód, przez sprzeczność Optymalna kolejność wykonywania 1, 2,, n, ale dla pewnego k: z k < z k+1 d k d k+1 Obecne kary: d k z k +(d k +d k+1 ) z k+1 = d k z k +d k+1 z k+1 +d k z k+1 Po zamianie miejscami k i k + 1: d k+1 z k+1 +(d k +d k+1 ) z k = d k z k +d k+1 z k+1 +d k+1 z k Po odjęciu stronami: bo: Sprzeczność! d k z k+1 d k+1 z k > 0 d k+1 z k < d k z k+1

Dowód, przez sprzeczność Optymalna kolejność wykonywania 1, 2,, n, ale dla pewnego k: z k < z k+1 d k d k+1 Obecne kary: d k z k +(d k +d k+1 ) z k+1 = d k z k +d k+1 z k+1 +d k z k+1 Po zamianie miejscami k i k + 1: d k+1 z k+1 +(d k +d k+1 ) z k = d k z k +d k+1 z k+1 +d k+1 z k Po odjęciu stronami: bo: Sprzeczność! d k z k+1 d k+1 z k > 0 d k+1 z k < d k z k+1

Dowód, przez sprzeczność Optymalna kolejność wykonywania 1, 2,, n, ale dla pewnego k: z k < z k+1 d k d k+1 Obecne kary: d k z k +(d k +d k+1 ) z k+1 = d k z k +d k+1 z k+1 +d k z k+1 Po zamianie miejscami k i k + 1: d k+1 z k+1 +(d k +d k+1 ) z k = d k z k +d k+1 z k+1 +d k+1 z k Po odjęciu stronami: bo: Sprzeczność! d k z k+1 d k+1 z k > 0 d k+1 z k < d k z k+1

Dowód, przez sprzeczność Optymalna kolejność wykonywania 1, 2,, n, ale dla pewnego k: z k < z k+1 d k d k+1 Obecne kary: d k z k +(d k +d k+1 ) z k+1 = d k z k +d k+1 z k+1 +d k z k+1 Po zamianie miejscami k i k + 1: d k+1 z k+1 +(d k +d k+1 ) z k = d k z k +d k+1 z k+1 +d k+1 z k Po odjęciu stronami: bo: Sprzeczność! d k z k+1 d k+1 z k > 0 d k+1 z k < d k z k+1

Dowód, przez sprzeczność Optymalna kolejność wykonywania 1, 2,, n, ale dla pewnego k: z k < z k+1 d k d k+1 Obecne kary: d k z k +(d k +d k+1 ) z k+1 = d k z k +d k+1 z k+1 +d k z k+1 Po zamianie miejscami k i k + 1: d k+1 z k+1 +(d k +d k+1 ) z k = d k z k +d k+1 z k+1 +d k+1 z k Po odjęciu stronami: bo: Sprzeczność! d k z k+1 d k+1 z k > 0 d k+1 z k < d k z k+1

Metody Sa intuicyjne, daja wydajne. Jednak często sa tylko pozornie poprawne!

Metody Sa intuicyjne, daja wydajne. Jednak często sa tylko pozornie poprawne!