Podstawy Informatyki Metody dostępu do danych

Wielkość: px
Rozpocząć pokaz od strony:

Download "Podstawy Informatyki Metody dostępu do danych"

Transkrypt

1 Podstawy Informatyki Metody dostępu do danych

2 Plan wykładu 1 Wprowadzenie Czym zajmuje się informatyka 2 Wprowadzenie Podstawowe problemy baz danych Struktury danych 3

3 - pochodzenie słowa Wprowadzenie Czym zajmuje się informatyka pochodzi od francuskiego słowa informatique: information (informacja) i automatique (automatyczny). Pierwsze użycie słowa zarejestrowano w 1962 roku. Pierwsza definicja (Akademia Francuska, 6 kwietnia 1967r.) Nauka o racjonalnym przetwarzaniu, szczególnie przez maszynę, automatyczną, informacji traktowanej jako nośnik wiadomości i podstawa komunikowania się w dziedzinach technicznych, ekonomicznych i społecznych.

4 w Polsce Plan wykładu Wprowadzenie Czym zajmuje się informatyka (...) uświadomienie sobie istnienia odrębnej nauki obejmującej maszyny matematyczne, maszynową technikę obliczeniową i przetwarzanie informacji, określenie jej obszaru i powiązań z innymi naukami, a także potrzeba krótkiej i jasnej nazwy jest dzisiaj w Polsce nakazem społecznym. Wydaje mi się, że najodpowiedniejszą nazwą dla tej dziedziny w języku polskim jest INFORMATYKA (...) Romuald Marczyński Sympozjum Naukowe Problemy Maszyn Matematycznych Zakopane, r.

5 na świecie Wprowadzenie Czym zajmuje się informatyka Ale... Francja informatique Niemcy Informatik Polska informatyka rosyjskie słowo informatika, oznacza informację naukowo-techniczną, amerykańskie słowo informatics jest rozumiane jako information science, czyli gromadzenie, klasyfikację, przechowywanie i rozpowszechnianie zapisanej wiedzy, Odpowiednikiem słowa informatyka jest angielskie computer science.

6 Komputer - źródłosłów Wprowadzenie Czym zajmuje się informatyka Słowo komputer pochodzi od łacińskiego computare (liczyć), w XVII wieku poprzez francuskie compter zostało przejęte przez język angielski. Odpowiedniki w języku polskim: pomoc obliczeniowa, aparat matematyczny, mózg elektronowy, maszyna matematyczna, elektroniczna maszyna obliczeniowa, elektroniczna maszyna cyfrowa, maszyna cyfrowa.

7 Pojęcie informatyki współcześnie Wprowadzenie Czym zajmuje się informatyka Informatykę można rozpatrywać jako: samodzielną dyscyplinę naukową, narzędzie wykorzystywane przez inne nauki, gałąź techniki, przemysł wytwarzający sprzęt i oprogramowanie.

8 - definicja Plan wykładu Wprowadzenie Czym zajmuje się informatyka traktowana jako nauka o komputerach, to jak chirurgia nazwana nauką o nożu. [Dawid Harel] to systematyczne badanie procesów algorytmicznych, które opisują i przetwarzają informację: ich teoria, analiza, projektowanie, efektywność, implementacja i zastosowanie. Fundamentalne pytanie brzmi: co można (efektywnie) zautomatyzować? [prof. Jan Węglarz]

9 Czym zajmuje się informatyka Wprowadzenie Czym zajmuje się informatyka zajmuje się zagadnieniami związanymi z pobieraniem, przechowywaniem, przetwarzaniem, przesyłaniem informacji. [prof. Stefan Węgrzyn] Informacja : wszystko to co zmniejsza naszą niepewność, uporządkowane dane, zinterpretowane na podstawie posiadanej wiedzy. [prof. Władysław M. Turski]

10 Plan wykładu Wprowadzenie Podstawowe problemy baz danych Struktury danych 1 Wprowadzenie Czym zajmuje się informatyka 2 Wprowadzenie Podstawowe problemy baz danych Struktury danych 3

11 Plan wykładu Wprowadzenie Podstawowe problemy baz danych Struktury danych Najwcześniejsze znane użycie terminu baza danych miało miejsce w listopadzie Baza danych - uporządkowany zbiór danych przechowywany w pamięci komputera. Przetwarzanie danych realizowane jest za pomocą programu zarządzającego (system zarządzania bazą danych). Dane reprezentowane są przez rekordy danych stanowiące uporządkowany zbiór elementów dowolnego typu umieszczony w tzw. polach, które zawierają klucz rekordu oraz jego atrybuty.

12 Modele baz danych Plan wykładu Wprowadzenie Podstawowe problemy baz danych Struktury danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych XXw. Charles Bachman szukał bardziej efektywnego użycia nowych urządzeń umożliwiających bezpośredni dostęp do składowanych danych. Powstały wtedy pierwsze modele baz danych: hierarchiczne jednej danej przyporządkowanych jest m innych danych bazy, sieciowe n danym przyporządkowanych jest m innych danych bazy, relacyjne (F.Codd, lata 70-te) zależności między danymi opisywane są poprzez odpowiednie klucze, obiektowe (lata 90-te).

13 Podstawowe problemy baz danych Wprowadzenie Podstawowe problemy baz danych Struktury danych 1 Problem rozmieszczenia polega na podaniu takiego algorytmu A, który na podstawie klucza K i zawartego w rekordzie R i przydzieli miejsce (adres) dla tegoż rekordu w określonej strukturze S. 2 Problem odszukania rekordu R i w strukturze S polega na ustaleniu adresu tego rekordu, na podstawie klucza K i i algorytmu A. 3 Problem wyszukania występuje, gdy na podstawie atrybutów innych niż klucz należy wyszukać odpowiedni rekord 1. 1 rozwiązanie tego problemu polega na przetestowaniu pól wszystkich rekordów i porównaniu ich zawartości z wartością zadanego atrybutu

14 Struktury danych Plan wykładu Wprowadzenie Podstawowe problemy baz danych Struktury danych Podstawowe struktury danych to: struktury stałe ich rozmiar jest niezależny od zebranych w nich elementów, ustalony z góry i niezmienny w czasie wykonywania operacji na strukturze, m.in. tablice struktury dynamicznie zmienne ich rozmiar zależy od liczby zgromadzonych w nich elementów, m.in. listy, drzewa, sieci. Rekordy w takich strukturach mają jedno lub kilka dodatkowych pól, zwanych polami łącznikowymi lub wskaźnikowymi, zwykle zawierające adresy elementów połączonych z danym rekordem.

15 Tablice Plan wykładu Wprowadzenie Podstawowe problemy baz danych Struktury danych Jest strukturą jednorodną. Składa się ze składowych tego samego typu zwanego podstawowym. Jest strukturą o dostępie swobodnym (wszystkie elementy mogą być wybrane w dowolnej kolejności i są jednakowo dostępne). Tablica jednowymiarowa o rozmiarze n oznaczana jest T[n]. Pesel Nazwisko Imię Adres Kowalska Anna Gliwice Nowak Tomasz Katowice Testowy Jan Bytom Kowalska Anna Gliwice Tablicę dwuwymiarową T[m,n] przedstawiamy jako m szeregowo ustawionych tablic o rozmiarze n.

16 Listy Plan wykładu Wprowadzenie Podstawowe problemy baz danych Struktury danych Lista liniowa zbiór, w którym każdy element ma co najwyżej jednego poprzednika lub następnika. Szczególnymi przypadkami listy liniowej są: lista cykliczna nie można tu wyróżnić początkowego ani końcowego elementu, stos dopisywanie i usuwanie elementów odbywa się z jednego końca, kolejka rekordy są dopisywane z jednego końca a usuwane z drugiego (tzn. usunięty może być tylko najwcześniej wpisany element). Lista dwukierunkowa istnieje tu dodatkowe w stosunku do listy liniowej połączenie następnik-poprzednik.

17 Drzewa, sieci Plan wykładu Wprowadzenie Podstawowe problemy baz danych Struktury danych Drzewo struktura, w której element może posiadać wiele następników, lecz tylko jednego poprzednika. Drzewo binarne liczba następników wynosi zero, jeden lub dwa. Drzewo BST (ang. Binary Search Tree) drzewo binarne, w którym lewe poddrzewo każdego węzła zawiera wyłącznie elementy o kluczach mniejszych niż klucz węzła a prawe poddrzewo zawiera wyłącznie elementy o kluczach większych. Drzewo AVL (Adelsona-Velskiego oraz Landisa) zrównoważone binarne drzewo poszukiwań (BST), w którym wysokość lewego i prawego poddrzewa każdego węzła różni się co najwyżej o jeden. Sieć struktura, w której istnieją elementy o wielu poprzednikach i wielu następnikach.

18 Przykłady drzew binarnych Wprowadzenie Podstawowe problemy baz danych Struktury danych

19 Plan wykładu 1 Wprowadzenie Czym zajmuje się informatyka 2 Wprowadzenie Podstawowe problemy baz danych Struktury danych 3

20 danego kluczem

21 danego kluczem Sposób odszukania zależy od struktury. Najprostszy przypadek gdy klucz jednocześnie adresem rekordu (indeksem) metoda adresowania bezpośredniego. Niskie zapełnienie obszaru pamięci przeznaczonego na zbiór. Problemy podczas przemieszczania zbioru w pamięci i jego rozszerzania.

22 w tablicy Założenia: N-elementowy zbiór rekordów umieszczony w N-elementowej tablicy. Przy braku dodatkowej wiedzy tablicę przeszukuje się sekwencyjnie. wyszukiwanie liniowe function Szukaj(x, T[1..N]) begin for i:=1 to N do if T[i]=x return i; return brak poszukiwanego elementu ; end W pesymistycznym przypadku lub gdy tablica nie zawiera poszukiwanego elementu koszt czasowy wynosi N.

23 Średni czas odszukania Średni czas odszukania opisuje wzór: L = gdzie: N c i p i, i=1 c i liczba prób wykonanych w celu odnalezienia i-tego rekordu, p i prawdopodobieństwo odwołania do i-tego rekordu, N wielkość (pojemność) tablicy.

24 Średni czas odszukania - wyszukiwanie liniowe Założenia: prawdopodobieństwo odwołania do każdego z rekordów jest jednakowe. L = N c i p i = i=1 N i=1 i N = N + 1 = O(N) 2

25 w tablicy Wiedząc, że N-elementowa tablica jest uporządkowana rosnąco można zastosować przeszukiwanie dychotomiczne. wyszukiwanie binarne function Szukaj(x, T[1..n]) begin l:=1;r:=n; while (l<=r) do begin m:=(l+r) div 2; if (T[m]<x) then l:=m+1 else if (T[m]>x) then r:=m-1 else return m; { ponieważ T[m]=x } end; return brak poszukiwanego elementu ; end;

26 - przykład Szukany klucz: 9 (left) l = 1 (right) r = 10 (middle) m = (1 + 10) div 2 =

27 - przykład Szukany klucz: 9 (left) l = 6 (right) r = 10 (middle) m = (6 + 10) div 2 =

28 - przykład Szukany klucz: 9 (left) l = 9 (right) r = 10 (middle) m = (9 + 10) div 2 =

29 - przykład c.d. Szukany klucz: 5 liczba prób: krok 1

30 - przykład c.d. Szukany klucz: 8 liczba prób: krok krok 2

31 - przykład c.d. Szukany klucz: 6 liczba prób: krok krok krok 3

32 - przykład c.d. Szukany klucz: 7 liczba prób: krok krok krok krok 4

33 - przykład c.d. Szukany klucz: liczba prób: krok krok krok krok 4 Powstało drzewo binarne idealnie zrównoważone.

34 Średni czas odszukania - wyszukiwanie binarne w przypadku: optymistycznym wymaga 1 próby, pesymistycznym wymaga log 2 (N + 1) prób. Średni czas odszukania rekordu: N L = c i p i = O(log 2 (N)). i=1

35 Średni czas odszukania - drzewo BST Wyszukiwanie w drzewie binarnym w przypadku: optymistycznym wymaga 1 próby, pesymistycznym wymaga N prób drzewo degeneruje się do listy, np. dla posortowanych danych. Średnio liczba prób wynosi: gdzie γ jest stałą Eulera. L = 2(log 2 (N) + γ) 3, Drzewo wyważone skraca nam drogę poszukiwań średnio o 39%.

36 Funkcja mieszająca (haszująca) Funkcja mieszająca dla danego klucza wyznacza indeks w tablicy (przekształca klucz w liczbę z zadanego zakresu). Zbiór możliwych wartości kluczy jest najczęściej znacznie większy od zbioru adresów (indeksów tablicy)!

37 Funkcja mieszająca - przykłady 1 Przekształcenie klucza do postaci liczby binarnej, np. dla klucza literowego można skorzystać z kodu ASCII. 2 W przypadku klucza binarnego: wyznaczenie reszty z dzielenia wartości liczbowej klucza przez liczbę elementów tablicy N, odrzucenie najmniej znaczących bitów (lub skrajnych bitów), podzielenie klucza binarnego na kilka części i dodanie ich do siebie, podnoszenie wartości klucza do kwadratu, a następnie pobieranie do wyniku tylko wybranych bitów.

38 z użyciem funkcji mieszającej 1 Mając zadany klucz K należy obliczyć związany z nim adres (indeks). 2 Sprawdzić, czy obiekt o kluczu K jest rzeczywiście pod adresem wyznaczonym przez funkcję h(k). Kolizja występuje gdy pod danym adresem jest inny klucz niż żądany. Wyznacza się wtedy adres alternatywny za pomocą odpowiedniego algorytmu rozwiązywania kolizji.

39 Rozwiązywanie problemu kolizji - metoda łańcuchowa Dane nie są przechowywane bezpośrednio w tablicy, lecz na liście związanej z danym indeksem tablicy. Nowy element dołącza się do końca listy. Średnia złożoność wyszukiwania jest złożonością liniowego wyszukiwania elementu na liście i zależy od współczynnika wypełnienia listy 1. Ponieważ złożoność pesymistyczna wyszukiwania wynosi O(N), czasami zamiast list stosuje się drzewa. Zaletą metody łańcuchowej jest szybkość i prostota usuwania elementów z listy. 1 stosunek liczby elementów do wielkości tablicy

40 Rozwiązywanie problemu kolizji - adresowanie otwarte Lokalizacja elementu określana jest przez dodanie do wartości funkcji mieszającej h(k) wartości funkcji przyrostu p(i). i oznacza numer próby (ile razy wstawienie się nie powiodło ze względu na kolizję), Ze względu na rodzaj funkcji przyrostu wyróżnia się różne metody adresowania otwartego, np.: szukanie liniowe, dla p(i) = i, szukanie kwadratowe, dla p(i) = i 2 ; mieszanie podwójne, dla p(i) = i h (K), gdzie h jest dodatkową funkcją mieszającą od klucza K. Wadą tej metody jest problem usuwania elementu, w sytuacji gdy w tablicy znajdują się inne, o tej samej wartości funkcji mieszającej.

41 Analiza efektywności funkcji mieszającej - założenia Wystąpienie każdego z kluczy jednakowo prawdopodobne. Tablica o rozmiarze N zawiera już n rekordów. Funkcja mieszająca przydziela wszystkie miejsca w tablicy z jednakowym prawdopodobieństwem, czyli 1/N. Algorytm rozwiązywania kolizji wybiera nie przeszukane miejsca w tablicy z równym prawdopodobieństwem.

42 Analiza efektywności funkcji mieszającej Spodziewana średnia liczba prób jaką należy wykonać aby umieścić n+1 rekord w tablicy N-elementowej: Dla n = 0 otrzymujemy E 1 = 1, bo tablica była jeszcze pusta. Dla n = 1, E 2 = 1P t (1) + 2P n (1)P t (2) = N 1 N N 1 N N 1 = N+1 N. Dla n = 2, E 3 = 1P t (1) + 2P n (1)P t (2) + 3P n (1)P n (2)P t (3) = N+1 N 1 Dla n = 3, E 4 = 1P t (1) P n (1)P n (2)P n (3)P t (4) = N+1 N 2 Ogólnie E n+1 = N + 1 N n + 1 P t (j) prawdopodobieństwo, że udało się wstawić rekord w j-tym kroku pod warunkiem, że w żadnym poprzednim się nie udało, P n (j) prawdopodobieństwo, że w j-tym kroku się nie udało wstawić rekordu pod warunkiem, że w żadnym poprzednim kroku się nie udało.

43 Analiza efektywności funkcji mieszającej Spodziewana średnia liczba prób jaką należy wykonać aby umieścić n+1 rekord w tablicy N-elementowej: Dla n = 0 otrzymujemy E 1 = 1, bo tablica była jeszcze pusta. Dla n = 1, E 2 = 1P t (1) + 2P n (1)P t (2) = N 1 N N 1 N N 1 = N+1 N. Dla n = 2, E 3 = 1P t (1) + 2P n (1)P t (2) + 3P n (1)P n (2)P t (3) = N+1 N 1 Dla n = 3, E 4 = 1P t (1) P n (1)P n (2)P n (3)P t (4) = N+1 N 2 Ogólnie E n+1 = N + 1 N n + 1 P t (j) prawdopodobieństwo, że udało się wstawić rekord w j-tym kroku pod warunkiem, że w żadnym poprzednim się nie udało, P n (j) prawdopodobieństwo, że w j-tym kroku się nie udało wstawić rekordu pod warunkiem, że w żadnym poprzednim kroku się nie udało.

44 Analiza efektywności funkcji mieszającej Spodziewana średnia liczba prób jaką należy wykonać aby umieścić n+1 rekord w tablicy N-elementowej: Dla n = 0 otrzymujemy E 1 = 1, bo tablica była jeszcze pusta. Dla n = 1, E 2 = 1P t (1) + 2P n (1)P t (2) = N 1 N N 1 N N 1 = N+1 N. Dla n = 2, E 3 = 1P t (1) + 2P n (1)P t (2) + 3P n (1)P n (2)P t (3) = N+1 N 1 Dla n = 3, E 4 = 1P t (1) P n (1)P n (2)P n (3)P t (4) = N+1 N 2 Ogólnie E n+1 = N + 1 N n + 1 P t (j) prawdopodobieństwo, że udało się wstawić rekord w j-tym kroku pod warunkiem, że w żadnym poprzednim się nie udało, P n (j) prawdopodobieństwo, że w j-tym kroku się nie udało wstawić rekordu pod warunkiem, że w żadnym poprzednim kroku się nie udało.

45 Analiza efektywności funkcji mieszającej Spodziewana średnia liczba prób jaką należy wykonać aby umieścić n+1 rekord w tablicy N-elementowej: Dla n = 0 otrzymujemy E 1 = 1, bo tablica była jeszcze pusta. Dla n = 1, E 2 = 1P t (1) + 2P n (1)P t (2) = N 1 N N 1 N N 1 = N+1 N. Dla n = 2, E 3 = 1P t (1) + 2P n (1)P t (2) + 3P n (1)P n (2)P t (3) = N+1 N 1 Dla n = 3, E 4 = 1P t (1) P n (1)P n (2)P n (3)P t (4) = N+1 N 2 Ogólnie E n+1 = N + 1 N n + 1 P t (j) prawdopodobieństwo, że udało się wstawić rekord w j-tym kroku pod warunkiem, że w żadnym poprzednim się nie udało, P n (j) prawdopodobieństwo, że w j-tym kroku się nie udało wstawić rekordu pod warunkiem, że w żadnym poprzednim kroku się nie udało.

46 Analiza efektywności funkcji mieszającej Spodziewana średnia liczba prób jaką należy wykonać aby umieścić n+1 rekord w tablicy N-elementowej: Dla n = 0 otrzymujemy E 1 = 1, bo tablica była jeszcze pusta. Dla n = 1, E 2 = 1P t (1) + 2P n (1)P t (2) = N 1 N N 1 N N 1 = N+1 N. Dla n = 2, E 3 = 1P t (1) + 2P n (1)P t (2) + 3P n (1)P n (2)P t (3) = N+1 N 1 Dla n = 3, E 4 = 1P t (1) P n (1)P n (2)P n (3)P t (4) = N+1 N 2 Ogólnie E n+1 = N + 1 N n + 1 P t (j) prawdopodobieństwo, że udało się wstawić rekord w j-tym kroku pod warunkiem, że w żadnym poprzednim się nie udało, P n (j) prawdopodobieństwo, że w j-tym kroku się nie udało wstawić rekordu pod warunkiem, że w żadnym poprzednim kroku się nie udało.

47 Wykres E n+1 dla 100-elementowej tablicy

48 Analiza efektywności funkcji mieszającej Ponieważ liczba prób przy rozmieszczaniu jest taka sama jak przy odszukiwaniu, to średnia liczba prób potrzebnych do znalezienia losowego klucza w tablicy wypełnionej M elementami: gdzie L = 1 M E n+1 = 1 M α log 2(1 α), n=1 α = M N + 1 jest ilorazem liczby zajętych i dostępnych adresów współczynnikiem wypełnienia. Gdy tablica jest pusta, to α = 0, gdy pełna α = N N+1.

49 Analiza efektywności funkcji mieszającej - wnioski Ze względu na efektywność zaleca się aby pojemność tablicy mieszająca była 10% - 20% większa od przewidywanej liczby danych.

50 Wady zastosowania funkcji mieszającej Teoretycznie wyszukiwanie elementu ma złożoność czasową O(1), ale w przypadku pesymistycznym wynosi O(N). Obliczanie wartości dobrej funkcji mieszającej może być bardzo kosztowne. Zastosowanie tablicy mieszającej dla zbyt małej liczby elementów może być wolniejsze niż zastosowanie zwykłej tablicy przeszukiwanej sekwencyjnie 1. 1 ze względu na wykorzystanie pamięci podręcznej, która przyspiesza odwołania do komórek pamięci operacyjnej gdy są one zgrupowane blisko siebie

Podstawy Informatyki. Metody dostępu do danych

Podstawy Informatyki. Metody dostępu do danych Podstawy Informatyki c.d. alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Bazy danych Struktury danych Średni czas odszukania rekordu Drzewa binarne w pamięci dyskowej 2 Sformułowanie

Bardziej szczegółowo

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

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane Algorytmy i struktury danych Wykład 4 Tablice nieporządkowane i uporządkowane Tablice uporządkowane Szukanie binarne Szukanie interpolacyjne Tablice uporządkowane Szukanie binarne O(log N) Szukanie interpolacyjne

Bardziej szczegółowo

Algorytmy i struktury danych. Wykład 6 Tablice rozproszone cz. 2

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

Bardziej szczegółowo

Drzewo. Drzewo uporządkowane ma ponumerowanych (oznaczonych) następników. Drzewo uporządkowane składa się z węzłów, które zawierają następujące pola:

Drzewo. Drzewo uporządkowane ma ponumerowanych (oznaczonych) następników. Drzewo uporządkowane składa się z węzłów, które zawierają następujące pola: Drzewa Drzewa Drzewo (ang. tree) zbiór węzłów powiązanych wskaźnikami, spójny i bez cykli. Drzewo posiada wyróżniony węzeł początkowy nazywany korzeniem (ang. root). Drzewo ukorzenione jest strukturą hierarchiczną.

Bardziej szczegółowo

Haszowanie (adresowanie rozpraszające, mieszające)

Haszowanie (adresowanie rozpraszające, mieszające) Haszowanie (adresowanie rozpraszające, mieszające) Tadeusz Pankowski H. Garcia-Molina, J.D. Ullman, J. Widom, Implementacja systemów baz danych, WNT, Warszawa, Haszowanie W adresowaniu haszującym wyróżniamy

Bardziej szczegółowo

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski : idea Indeksowanie: Drzewo decyzyjne, przeszukiwania binarnego: F = {5, 7, 10, 12, 13, 15, 17, 30, 34, 35, 37, 40, 45, 50, 60} 30 12 40 7 15 35 50 Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

Bardziej szczegółowo

struktury danych dla operacji słownikowych

struktury danych dla operacji słownikowych struktury danych dla operacji słownikowych tablica nieuporządkowana tablica uporządkowana lista dowiązaniowa drzewo poszukiwań binarnych drzewa zrównoważone z tablice haszowaniem tablice z haszowaniem

Bardziej szczegółowo

< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 >

< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 > Typy indeksów Indeks jest zakładany na atrybucie relacji atrybucie indeksowym (ang. indexing field). Indeks zawiera wartości atrybutu indeksowego wraz ze wskaźnikami do wszystkich bloków dyskowych zawierających

Bardziej szczegółowo

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy) Rok akademicki 2012/2013, Wykład nr 2 2/25 Plan wykładu nr 2 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2012/2013

Bardziej szczegółowo

Tablice z haszowaniem

Tablice z haszowaniem Tablice z haszowaniem - efektywna metoda reprezentacji słowników (zbiorów dynamicznych, na których zdefiniowane są operacje Insert, Search i Delete) - jest uogólnieniem zwykłej tablicy - przyspiesza operacje

Bardziej szczegółowo

Porządek symetryczny: right(x)

Porządek symetryczny: right(x) Porządek symetryczny: x lef t(x) right(x) Własność drzewa BST: W drzewach BST mamy porządek symetryczny. Dla każdego węzła x spełniony jest warunek: jeżeli węzeł y leży w lewym poddrzewie x, to key(y)

Bardziej szczegółowo

Drzewa binarne. Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0. jest drzewem binarnym Np.

Drzewa binarne. Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0. jest drzewem binarnym Np. Drzewa binarne Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0 i T 1 są drzewami binarnymi to T 0 T 1 jest drzewem binarnym Np. ( ) ( ( )) Wielkość drzewa

Bardziej szczegółowo

prowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325

prowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325 PODSTAWY INFORMATYKI WYKŁAD 8. prowadzący dr ADRIAN HORZYK http://home home.agh.edu.pl/~ /~horzyk e-mail: horzyk@agh agh.edu.pl tel.: 012-617 617-4319 Konsultacje paw. D-13/325 DRZEWA Drzewa to rodzaj

Bardziej szczegółowo

Tablice z haszowaniem

Tablice z haszowaniem Tablice z haszowaniem - efektywna metoda reprezentacji słowników (zbiorów dynamicznych, na których zdefiniowane są operacje Insert, Search i Delete) - jest uogólnieniem zwykłej tablicy - przyspiesza operacje

Bardziej szczegółowo

Algorytmy i struktury danych. wykład 5

Algorytmy i struktury danych. wykład 5 Plan wykładu: Wskaźniki. : listy, drzewa, kopce. Wskaźniki - wskaźniki Wskaźnik jest to liczba lub symbol który w ogólności wskazuje adres komórki pamięci. W językach wysokiego poziomu wskaźniki mogą również

Bardziej szczegółowo

Wysokość drzewa Głębokość węzła

Wysokość drzewa Głębokość węzła Drzewa Drzewa Drzewo (ang. tree) zbiór węzłów powiązanych wskaźnikami, spójny i bez cykli. Drzewo posiada wyróżniony węzeł początkowy nazywany korzeniem (ang. root). Drzewo ukorzenione jest strukturą hierarchiczną.

Bardziej szczegółowo

Wykład 2. Drzewa zbalansowane AVL i 2-3-4

Wykład 2. Drzewa zbalansowane AVL i 2-3-4 Wykład Drzewa zbalansowane AVL i -3-4 Drzewa AVL Wprowadzenie Drzewa AVL Definicja drzewa AVL Operacje wstawiania i usuwania Złożoność obliczeniowa Drzewa -3-4 Definicja drzewa -3-4 Operacje wstawiania

Bardziej szczegółowo

Haszowanie. dr inż. Urszula Gałązka

Haszowanie. dr inż. Urszula Gałązka Haszowanie dr inż. Urszula Gałązka Problem Potrzebujemy struktury do Wstawiania usuwania wyszukiwania Liczb, napisów, rekordów w Bazach danych, sieciach komputerowych, innych Rozwiązanie Tablice z haszowaniem

Bardziej szczegółowo

Drzewa poszukiwań binarnych

Drzewa poszukiwań binarnych 1 Cel ćwiczenia Algorytmy i struktury danych Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet ielonogórski Drzewa poszukiwań binarnych Ćwiczenie

Bardziej szczegółowo

Wykład X. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2016 Janusz Słupik

Wykład X. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2016 Janusz Słupik Wykład X Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2016 c Copyright 2016 Janusz Słupik Drzewa binarne Drzewa binarne Drzewo binarne - to drzewo (graf spójny bez cykli) z korzeniem (wyróżnionym

Bardziej szczegółowo

Bazy danych. Andrzej Łachwa, UJ, /15

Bazy danych. Andrzej Łachwa, UJ, /15 Bazy danych Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 15/15 PYTANIA NA EGZAMIN LICENCJACKI 84. B drzewa definicja, algorytm wyszukiwania w B drzewie. Zob. Elmasri:

Bardziej szczegółowo

WSTĘP DO INFORMATYKI. Drzewa i struktury drzewiaste

WSTĘP DO INFORMATYKI. Drzewa i struktury drzewiaste Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej WSTĘP DO INFORMATYKI Adrian Horzyk Drzewa i struktury drzewiaste www.agh.edu.pl DEFINICJA DRZEWA Drzewo

Bardziej szczegółowo

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium 7. 2 Drzewa poszukiwań binarnych

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium 7. 2 Drzewa poszukiwań binarnych Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Algorytmy i struktury danych Laboratorium Drzewa poszukiwań binarnych 1 Cel ćwiczenia Ćwiczenie ma na celu zapoznanie studentów

Bardziej szczegółowo

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

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

Bardziej szczegółowo

Algorytmy i Struktury Danych, 9. ćwiczenia

Algorytmy i Struktury Danych, 9. ćwiczenia Algorytmy i Struktury Danych, 9. ćwiczenia 206-2-09 Plan zajęć usuwanie z B-drzew join i split na 2-3-4 drzewach drzepce adresowanie otwarte w haszowaniu z analizą 2 B-drzewa definicja każdy węzeł ma następujące

Bardziej szczegółowo

Bazy danych - BD. Indeksy. Wykład przygotował: Robert Wrembel. BD wykład 7 (1)

Bazy danych - BD. Indeksy. Wykład przygotował: Robert Wrembel. BD wykład 7 (1) Indeksy Wykład przygotował: Robert Wrembel BD wykład 7 (1) 1 Plan wykładu Problematyka indeksowania Podział indeksów i ich charakterystyka indeks podstawowy, zgrupowany, wtórny indeks rzadki, gęsty Indeks

Bardziej szczegółowo

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno Instrukcja laboratoryjna 5 Podstawy programowania 2 Temat: Drzewa binarne Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny Drzewa są jedną z częściej wykorzystywanych struktur danych. Reprezentują

Bardziej szczegółowo

Algorytmy i Struktury Danych

Algorytmy i Struktury Danych Algorytmy i Struktury Danych Kopce Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 11 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych Wykład 11 1 / 69 Plan wykładu

Bardziej szczegółowo

Drzewa poszukiwań binarnych

Drzewa poszukiwań binarnych 1 Drzewa poszukiwań binarnych Kacper Pawłowski Streszczenie W tej pracy przedstawię zagadnienia związane z drzewami poszukiwań binarnych. Przytoczę poszczególne operacje na tej strukturze danych oraz ich

Bardziej szczegółowo

Definicja pliku kratowego

Definicja pliku kratowego Pliki kratowe Definicja pliku kratowego Plik kratowy (ang grid file) jest strukturą wspierająca realizację zapytań wielowymiarowych Uporządkowanie rekordów, zawierających dane wielowymiarowe w pliku kratowym,

Bardziej szczegółowo

Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania:

Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania: Sortowanie Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania: podać strukturę danych dla elementów dynamicznego skończonego multi-zbioru S, względem którego są wykonywane następujące

Bardziej szczegółowo

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

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski Algorytmy i struktury danych Wykład 5: Drzewa Dr inż. Paweł Kasprowski pawel@kasprowski.pl Drzewa Struktury przechowywania danych podobne do list ale z innymi zasadami wskazywania następników Szczególny

Bardziej szczegółowo

Przykładowe B+ drzewo

Przykładowe B+ drzewo Przykładowe B+ drzewo 3 8 1 3 7 8 12 Jak obliczyć rząd indeksu p Dane: rozmiar klucza V, rozmiar wskaźnika do bloku P, rozmiar bloku B, liczba rekordów w indeksowanym pliku danych r i liczba bloków pliku

Bardziej szczegółowo

2012-01-16 PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew

2012-01-16 PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew 0-0-6 PLAN WYKŁADU Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew BAZY DANYCH Wykład 9 dr inż. Agnieszka Bołtuć INDEKSY - DEFINICJE Indeksy to pomocnicze struktury

Bardziej szczegółowo

Wykład 8. Drzewa AVL i 2-3-4

Wykład 8. Drzewa AVL i 2-3-4 Wykład 8 Drzewa AVL i 2-3-4 1 Drzewa AVL Ø Drzewa AVL Definicja drzewa AVL Operacje wstawiania i usuwania Złożoność obliczeniowa Ø Drzewa 2-3-4 Definicja drzewa 2-3-4 Operacje wstawiania i usuwania Złożoność

Bardziej szczegółowo

Wykład 6. Drzewa poszukiwań binarnych (BST)

Wykład 6. Drzewa poszukiwań binarnych (BST) Wykład 6 Drzewa poszukiwań binarnych (BST) 1 O czym będziemy mówić Definicja Operacje na drzewach BST: Search Minimum, Maximum Predecessor, Successor Insert, Delete Struktura losowo budowanych drzew BST

Bardziej szczegółowo

Wyszukiwanie w BST Minimalny i maksymalny klucz. Wyszukiwanie w BST Minimalny klucz. Wyszukiwanie w BST - minimalny klucz Wersja rekurencyjna

Wyszukiwanie w BST Minimalny i maksymalny klucz. Wyszukiwanie w BST Minimalny klucz. Wyszukiwanie w BST - minimalny klucz Wersja rekurencyjna Podstawy Programowania 2 Drzewa bst - część druga Arkadiusz Chrobot Zakład Informatyki 12 maja 2016 1 / 8 Plan Wstęp Wyszukiwanie w BST Minimalny i maksymalny klucz Wskazany klucz Zmiany w funkcji main()

Bardziej szczegółowo

Wykład 2. Drzewa poszukiwań binarnych (BST)

Wykład 2. Drzewa poszukiwań binarnych (BST) Wykład 2 Drzewa poszukiwań binarnych (BST) 1 O czym będziemy mówić Definicja Operacje na drzewach BST: Search Minimum, Maximum Predecessor, Successor Insert, Delete Struktura losowo budowanych drzew BST

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych ĆWICZENIE 2 - WYBRANE ZŁOŻONE STRUKTURY DANYCH - (12.3.212) Prowadząca: dr hab. inż. Małgorzata Sterna Informatyka i3, poniedziałek godz. 11:45 Adam Matuszewski, nr 1655 Oliver

Bardziej szczegółowo

WSTĘP DO INFORMATYKI. Struktury liniowe

WSTĘP DO INFORMATYKI. Struktury liniowe Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej WSTĘP DO INFORMATYKI Adrian Horzyk Struktury liniowe www.agh.edu.pl STRUKTURY LINIOWE SEKWENCJE Struktury

Bardziej szczegółowo

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce. POLITECHNIKA WARSZAWSKA Instytut Automatyki i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 204/205 Język programowania: Środowisko programistyczne: C/C++ Qt Wykład 2 : Drzewa BST c.d., równoważenie

Bardziej szczegółowo

Techniki wyszukiwania danych haszowanie

Techniki wyszukiwania danych haszowanie Algorytmy i struktury danych Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski Techniki wyszukiwania danych haszowanie 1 Cel

Bardziej szczegółowo

Sortowanie bąbelkowe

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

Bardziej szczegółowo

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne Algorytmy i struktury danych Drzewa: BST, kopce Letnie Warsztaty Matematyczno-Informatyczne Drzewa: BST, kopce Definicja drzewa Drzewo (ang. tree) to nieskierowany, acykliczny, spójny graf. Drzewo może

Bardziej szczegółowo

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 1 WSTĘP DO INFORMATYKI

Dr inż. Grażyna KRUPIŃSKA.  D-10 pokój 227 WYKŁAD 1 WSTĘP DO INFORMATYKI Dr inż. Grażyna KRUPIŃSKA Grazyna.Krupinska@fis.agh.edu.pl http://orion.fis.agh.edu.pl/~grazyna/ D-10 pokój 227 WYKŁAD 1 WSTĘP DO INFORMATYKI Plan wykładu 2 Wprowadzenie, trochę historii, systemy liczbowe

Bardziej szczegółowo

Algorytmy i złożoności Wykład 5. Haszowanie (hashowanie, mieszanie)

Algorytmy i złożoności Wykład 5. Haszowanie (hashowanie, mieszanie) Algorytmy i złożoności Wykład 5. Haszowanie (hashowanie, mieszanie) Wprowadzenie Haszowanie jest to pewna technika rozwiązywania ogólnego problemu słownika. Przez problem słownika rozumiemy tutaj takie

Bardziej szczegółowo

Kolejka priorytetowa. Często rozważa się kolejki priorytetowe, w których poszukuje się elementu minimalnego zamiast maksymalnego.

Kolejka priorytetowa. Często rozważa się kolejki priorytetowe, w których poszukuje się elementu minimalnego zamiast maksymalnego. Kolejki Kolejka priorytetowa Kolejka priorytetowa (ang. priority queue) to struktura danych pozwalająca efektywnie realizować następujące operacje na zbiorze dynamicznym, którego elementy pochodzą z określonego

Bardziej szczegółowo

Wykład 4. Tablice z haszowaniem

Wykład 4. Tablice z haszowaniem Wykład 4 Tablice z haszowaniem 1 Wprowadzenie Tablice z adresowaniem bezpośrednim Tablice z haszowaniem: Adresowanie otwarte Haszowanie łańcuchowe Funkcje haszujące (mieszające) Haszowanie uniwersalne

Bardziej szczegółowo

Algorytm selekcji Hoare a. Łukasz Miemus

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

Bardziej szczegółowo

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1 Bazy danych wprowadzenie teoretyczne Piotr Prekurat 1 Baza danych Jest to zbiór danych lub jakichkolwiek innych materiałów i elementów zgromadzonych według określonej systematyki lub metody. Zatem jest

Bardziej szczegółowo

wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK

wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK 1 2 3 Pamięć zewnętrzna Pamięć zewnętrzna organizacja plikowa. Pamięć operacyjna organizacja blokowa. 4 Bufory bazy danych. STRUKTURA PROSTA

Bardziej szczegółowo

. Podstawy Programowania 2. Drzewa bst - część druga. Arkadiusz Chrobot. 12 maja 2019

. Podstawy Programowania 2. Drzewa bst - część druga. Arkadiusz Chrobot. 12 maja 2019 .. Podstawy Programowania 2 Drzewa bst - część druga Arkadiusz Chrobot Zakład Informatyki 12 maja 2019 1 / 39 Plan.1 Wstęp.2 Wyszukiwanie w BST Minimalny i maksymalny klucz Wskazany klucz.3.4 Zmiany w

Bardziej szczegółowo

Podstawy Informatyki. Wykład 6. Struktury danych

Podstawy Informatyki. Wykład 6. Struktury danych Podstawy Informatyki Wykład 6 Struktury danych Stałe i zmienne Podstawowymi obiektami występującymi w programie są stałe i zmienne. Ich znaczenie jest takie samo jak w matematyce. Stałe i zmienne muszą

Bardziej szczegółowo

AiSD zadanie drugie. Gliwiński Jarosław Marek Kruczyński Konrad Marek Grupa dziekańska I5. 10 kwietnia 2008

AiSD zadanie drugie. Gliwiński Jarosław Marek Kruczyński Konrad Marek Grupa dziekańska I5. 10 kwietnia 2008 AiSD zadanie drugie Gliwiński Jarosław Marek Kruczyński Konrad Marek Grupa dziekańska I5 10 kwietnia 2008 1 Wstęp W nowym zadaniu porównywano efektywność kilku operacji na dwóch różnie zorganizowanych

Bardziej szczegółowo

Zadanie projektowe nr 1

Zadanie projektowe nr 1 Zadanie projektowe nr 1 Badanie efektywności operacji dodawania (wstawiania), usuwania oraz wyszukiwania elementów w podstawowych strukturach danych Należy zaimplementować oraz dokonać pomiaru czasu działania

Bardziej szczegółowo

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) 20.11.2002 Algorytmy i Struktury Danych PIŁA ZŁOŻONE STRUKTURY DANYCH C za s tw or ze nia s tr uk tur y (m s ) TWORZENIE ZŁOŻONYCH STRUKTUR DANYCH: 00 0

Bardziej szczegółowo

Listy, kolejki, stosy

Listy, kolejki, stosy Listy, kolejki, stosy abc Lista O Struktura danych składa się z węzłów, gdzie mamy informacje (dane) i wskaźniki do następnych węzłów. Zajmuje tyle miejsca w pamięci ile mamy węzłów O Gdzie można wykorzystać:

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy Wykład 3 Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy Dynamiczne struktury danych Lista jest to liniowo uporządkowany zbiór elementów, z których dowolny element

Bardziej szczegółowo

WPROWADZENIE DO BAZ DANYCH

WPROWADZENIE DO BAZ DANYCH WPROWADZENIE DO BAZ DANYCH Pojęcie danych i baz danych Dane to wszystkie informacje jakie przechowujemy, aby w każdej chwili mieć do nich dostęp. Baza danych (data base) to uporządkowany zbiór danych z

Bardziej szczegółowo

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

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Technologie cyfrowe Artur Kalinowski Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu.pl Semestr letni 2014/2015 Zadanie algorytmiczne: wyszukiwanie dane wejściowe:

Bardziej szczegółowo

BAZY DANYCH. Microsoft Access. Adrian Horzyk OPTYMALIZACJA BAZY DANYCH I TWORZENIE INDEKSÓW. Akademia Górniczo-Hutnicza

BAZY DANYCH. Microsoft Access. Adrian Horzyk OPTYMALIZACJA BAZY DANYCH I TWORZENIE INDEKSÓW. Akademia Górniczo-Hutnicza BAZY DANYCH Microsoft Access OPTYMALIZACJA BAZY DANYCH I TWORZENIE INDEKSÓW Adrian Horzyk Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki

Bardziej szczegółowo

Drzewa BST i AVL. Drzewa poszukiwań binarnych (BST)

Drzewa BST i AVL. Drzewa poszukiwań binarnych (BST) Drzewa ST i VL Drzewa poszukiwań binarnych (ST) Drzewo ST to dynamiczna struktura danych (w formie drzewa binarnego), która ma tą właściwość, że dla każdego elementu wszystkie elementy w jego prawym poddrzewie

Bardziej szczegółowo

Sortowanie. Bartman Jacek Algorytmy i struktury

Sortowanie. Bartman Jacek Algorytmy i struktury Sortowanie Bartman Jacek jbartman@univ.rzeszow.pl Algorytmy i struktury danych Sortowanie przez proste wstawianie przykład 41 56 17 39 88 24 03 72 41 56 17 39 88 24 03 72 17 41 56 39 88 24 03 72 17 39

Bardziej szczegółowo

Baza danych. Baza danych to:

Baza danych. Baza danych to: Baza danych Baza danych to: zbiór danych o określonej strukturze, zapisany na zewnętrznym nośniku (najczęściej dysku twardym komputera), mogący zaspokoić potrzeby wielu użytkowników korzystających z niego

Bardziej szczegółowo

Bazy danych. Plan wykładu. Model logiczny i fizyczny. Operacje na pliku. Dyski. Mechanizmy składowania

Bazy danych. Plan wykładu. Model logiczny i fizyczny. Operacje na pliku. Dyski. Mechanizmy składowania Plan wykładu Bazy danych Wykład 10: Fizyczna organizacja danych w bazie danych Model logiczny i model fizyczny Mechanizmy składowania plików Moduł zarządzania miejscem na dysku i moduł zarządzania buforami

Bardziej szczegółowo

Algorytmy i Struktury Danych. (c) Marcin Sydow. Słownik. Tablica mieszająca. Słowniki. Słownik uporządkowany. Drzewo BST.

Algorytmy i Struktury Danych. (c) Marcin Sydow. Słownik. Tablica mieszająca. Słowniki. Słownik uporządkowany. Drzewo BST. i Zawartość wykładu definicja słownika analiza naiwnych implementacji słownika tablice mieszające własności funkcji mieszającej analiza operacji słownika zaimplementowanych na tablicy mieszającej sposoby

Bardziej szczegółowo

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

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew 1. ( pkt) Dany jest algorytm, który dla dowolnej liczby naturalnej n, powinien wyznaczyd sumę kolejnych liczb naturalnych mniejszych od n. Wynik algorytmu jest zapisany w zmiennej suma. Algorytm i=1; suma=0;

Bardziej szczegółowo

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2014/15 Znajdowanie maksimum w zbiorze

Bardziej szczegółowo

Lista liniowa dwukierunkowa

Lista liniowa dwukierunkowa 53 Lista liniowa dwukierunkowa Jest to lista złożona z elementów, z których każdy posiada, oprócz wskaźnika na element następny, również wskaźnik na element poprzedni. Zdefiniujmy element listy dwukierunkowej

Bardziej szczegółowo

Struktury danych: stos, kolejka, lista, drzewo

Struktury danych: stos, kolejka, lista, drzewo Struktury danych: stos, kolejka, lista, drzewo Wykład: dane w strukturze, funkcje i rodzaje struktur, LIFO, last in first out, kolejka FIFO, first in first out, push, pop, size, empty, głowa, ogon, implementacja

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 8a Relacyjny model danych 21.11.2008 Relacyjny model danych Jednym z najważniejszych zastosowań komputerów jest przechowywanie i przetwarzanie informacji. Relacyjny

Bardziej szczegółowo

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA Rekurencja - zdolność podprogramu (procedury) do wywoływania samego (samej) siebie Wieże Hanoi dane wejściowe - trzy kołki i N krążków o różniących się średnicach wynik - sekwencja ruchów przenosząca krążki

Bardziej szczegółowo

Algorytmy i struktury danych. wykład 9

Algorytmy i struktury danych. wykład 9 Plan wykładu:. Algorytmy numeryczne. Funkcja skrótu jest to funkcja H, która dla do dowolnej informacji m przyporządkowuje niespecyficzną wartość h, mającą cechy pseudolosowe. Cechy: skróty są zazwyczaj

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Struktury Danych i Złożoność Obliczeniowa

Struktury Danych i Złożoność Obliczeniowa Struktury Danych i Złożoność Obliczeniowa Zajęcia 3 Struktury drzewiaste drzewo binarne szczególny przypadek drzewa, które jest szczególnym przypadkiem grafu skierowanego, stopień każdego wierzchołka jest

Bardziej szczegółowo

dodatkowe operacje dla kopca binarnego: typu min oraz typu max:

dodatkowe operacje dla kopca binarnego: typu min oraz typu max: ASD - ćwiczenia IX Kopce binarne własność porządku kopca gdzie dla każdej trójki wierzchołków kopca (X, Y, Z) porządek etykiet elem jest następujący X.elem Y.elem oraz Z.elem Y.elem w przypadku kopca typu

Bardziej szczegółowo

Wykład I. Wprowadzenie do baz danych

Wykład I. Wprowadzenie do baz danych Wykład I Wprowadzenie do baz danych Trochę historii Pierwsze znane użycie terminu baza danych miało miejsce w listopadzie w 1963 roku. W latach sześcdziesątych XX wieku został opracowany przez Charles

Bardziej szczegółowo

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku System plików 1. Pojęcie pliku 2. Typy i struktury plików 3. etody dostępu do plików 4. Katalogi 5. Budowa systemu plików Pojęcie pliku (ang( ang. file)! Plik jest abstrakcyjnym obrazem informacji gromadzonej

Bardziej szczegółowo

Analiza algorytmów zadania podstawowe

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ą

Bardziej szczegółowo

Struktura danych. Sposób uporządkowania informacji w komputerze. Na strukturach danych operują algorytmy. Przykładowe struktury danych:

Struktura danych. Sposób uporządkowania informacji w komputerze. Na strukturach danych operują algorytmy. Przykładowe struktury danych: Struktura danych Sposób uporządkowania informacji w komputerze. Na strukturach danych operują algorytmy. Przykładowe struktury danych: rekord tablica lista stos kolejka drzewo i jego odmiany (np. drzewo

Bardziej szczegółowo

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Krzysztof Kadowski. PL-E3579, PL-EA0312, Krzysztof Kadowski PL-E3579, PL-EA0312, kadowski@jkk.edu.pl Bazą danych nazywamy zbiór informacji w postaci tabel oraz narzędzi stosowanych do gromadzenia, przekształcania oraz wyszukiwania danych. Baza

Bardziej szczegółowo

System plików warstwa fizyczna

System plików warstwa fizyczna System plików warstwa fizyczna Dariusz Wawrzyniak Przydział miejsca na dysku Przydział ciągły (ang. contiguous allocation) cały plik zajmuje ciąg kolejnych bloków Przydział listowy (łańcuchowy, ang. linked

Bardziej szczegółowo

System plików warstwa fizyczna

System plików warstwa fizyczna System plików warstwa fizyczna Dariusz Wawrzyniak Plan wykładu Przydział miejsca na dysku Zarządzanie wolną przestrzenią Implementacja katalogu Przechowywanie podręczne Integralność systemu plików Semantyka

Bardziej szczegółowo

System plików warstwa fizyczna

System plików warstwa fizyczna System plików warstwa fizyczna Dariusz Wawrzyniak Przydział miejsca na dysku Zarządzanie wolną przestrzenią Implementacja katalogu Przechowywanie podręczne Integralność systemu plików Semantyka spójności

Bardziej szczegółowo

Plan wykładu. Klucz wyszukiwania. Pojęcie indeksu BAZY DANYCH. Pojęcie indeksu - rodzaje indeksów Metody implementacji indeksów.

Plan wykładu. Klucz wyszukiwania. Pojęcie indeksu BAZY DANYCH. Pojęcie indeksu - rodzaje indeksów Metody implementacji indeksów. Plan wykładu 2 BAZY DANYCH Wykład 4: Indeksy. Pojęcie indeksu - rodzaje indeksów Metody implementacji indeksów struktury statyczne struktury dynamiczne Małgorzata Krętowska Wydział Informatyki PB Pojęcie

Bardziej szczegółowo

ALGORYTMY I STRUKTURY DANYCH

ALGORYTMY I STRUKTURY DANYCH LGORTM I STRUKTUR DNH Temat 6: Drzewa ST, VL Wykładowca: dr inż. bigniew TRPT e-mail: bigniew.tarapata@isi.wat.edu.pl http://www.tarapata.strefa.pl/p_algorytmy_i_struktury_danych/ Współautorami wykładu

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 5b: Model danych oparty na listach http://kiwi.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Słowem wstępu Listy należą do najbardziej

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych Zaawansowane algorytmy sortowania Witold Marańda maranda@dmcs.p.lodz.pl 1 Sortowanie za pomocą malejących przyrostów metoda Shella Metoda jest rozwinięciem metody sortowania

Bardziej szczegółowo

Zazwyczaj rozmiar bloku jest większy od rozmiaru rekordu, tak więc. ich efektywna lokalizacja kiedy tylko zachodzi taka potrzeba.

Zazwyczaj rozmiar bloku jest większy od rozmiaru rekordu, tak więc. ich efektywna lokalizacja kiedy tylko zachodzi taka potrzeba. Proces fizycznego projektowania bazy danych sprowadza się do wyboru określonych technik organizacji danych, najbardziej odpowiednich dla danych aplikacji. Pojęcia podstawowe: Dane są przechowywane na dysku

Bardziej szczegółowo

PLAN WYKŁADU BAZY DANYCH HIERARCHIA MECHANIZMÓW SKŁADOWANIA PRZECHOWYWANIA BAZ DANYCH

PLAN WYKŁADU BAZY DANYCH HIERARCHIA MECHANIZMÓW SKŁADOWANIA PRZECHOWYWANIA BAZ DANYCH PLAN WYKŁADU Składowanie danych Podstawowe struktury plikowe Organizacja plików BAZY DANYCH Wykład 8 dr inż. Agnieszka Bołtuć HIERARCHIA MECHANIZMÓW SKŁADOWANIA Podstawowy mechanizm składowania pamięć

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 8a: Relacyjny model danych http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2009/tpi-2009 Prof. dr hab. Elżbieta Richter-Wąs 1 Relacyjny model danych Jednym z najważniejszych

Bardziej szczegółowo

BAZY DANYCH. Microsoft Access. Adrian Horzyk OPTYMALIZACJA BAZY DANYCH I TWORZENIE INDEKSÓW. Akademia Górniczo-Hutnicza

BAZY DANYCH. Microsoft Access. Adrian Horzyk OPTYMALIZACJA BAZY DANYCH I TWORZENIE INDEKSÓW. Akademia Górniczo-Hutnicza BAZY DANYCH Microsoft Access OPTYMALIZACJA BAZY DANYCH I TWORZENIE INDEKSÓW Adrian Horzyk Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki

Bardziej szczegółowo

Podstawowe struktury danych

Podstawowe struktury danych Podstawowe struktury danych 1) Listy Lista to skończony ciąg elementów: q=[x 1, x 2,..., x n ]. Skrajne elementy x 1 i x n nazywamy końcami listy, a wielkość q = n długością (rozmiarem) listy. Szczególnym

Bardziej szczegółowo

Teoria obliczeń i złożoność obliczeniowa

Teoria obliczeń i złożoność obliczeniowa Teoria obliczeń i złożoność obliczeniowa Kontakt: dr hab. inż. Adam Kasperski, prof. PWr. pokój 509 B4 adam.kasperski@pwr.wroc.pl materiały + informacje na stronie www. Zaliczenie: Egzamin Literatura Problemy

Bardziej szczegółowo

Drzewa wyszukiwań binarnych (BST)

Drzewa wyszukiwań binarnych (BST) Drzewa wyszukiwań binarnych (BST) Krzysztof Grządziel 12 czerwca 2007 roku 1 Drzewa Binarne Drzewa wyszukiwań binarnych, w skrócie BST (od ang. binary search trees), to szczególny przypadek drzew binarnych.

Bardziej szczegółowo

Złożoność obliczeniowa zadania, zestaw 2

Złożoność obliczeniowa zadania, zestaw 2 Złożoność obliczeniowa zadania, zestaw 2 Określanie złożoności obliczeniowej algorytmów, obliczanie pesymistycznej i oczekiwanej złożoności obliczeniowej 1. Dana jest tablica jednowymiarowa A o rozmiarze

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Sieci powiązań Paweł Daniluk Wydział Fizyki Jesień 2015 P. Daniluk (Wydział Fizyki) PO w. IX Jesień 2015 1 / 21 Sieci powiązań Można (bardzo zgrubnie) wyróżnić dwa rodzaje powiązań

Bardziej szczegółowo

Wstęp do programowania. Drzewa podstawowe techniki. Piotr Chrząstowski-Wachtel

Wstęp do programowania. Drzewa podstawowe techniki. Piotr Chrząstowski-Wachtel Wstęp do programowania Drzewa podstawowe techniki Piotr Chrząstowski-Wachtel Drzewa wyszukiwań Drzewa często służą do przechowywania informacji. Jeśli uda sie nam stworzyć drzewo o niewielkiej wysokości

Bardziej szczegółowo