Podstawy Informatyki Metody dostępu do danych

Podobne dokumenty
Podstawy Informatyki. Metody dostępu do danych

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

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

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:

Haszowanie (adresowanie rozpraszające, mieszające)

Tadeusz Pankowski

struktury danych dla operacji słownikowych

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

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

Tablice z haszowaniem

Porządek symetryczny: right(x)

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

prowadzący dr ADRIAN HORZYK /~horzyk tel.: Konsultacje paw. D-13/325

Tablice z haszowaniem

Algorytmy i struktury danych. wykład 5

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

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

Haszowanie. dr inż. Urszula Gałązka

Drzewa poszukiwań binarnych

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

Bazy danych. Andrzej Łachwa, UJ, /15

WSTĘP DO INFORMATYKI. Drzewa i struktury drzewiaste

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

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Algorytmy i Struktury Danych, 9. ćwiczenia

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

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

Algorytmy i Struktury Danych

Drzewa poszukiwań binarnych

Definicja pliku kratowego

Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania:

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

Przykładowe B+ drzewo

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

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

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

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

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

Algorytmy i struktury danych

WSTĘP DO INFORMATYKI. Struktury liniowe

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

Techniki wyszukiwania danych haszowanie

Sortowanie bąbelkowe

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

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

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

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

Wykład 4. Tablice z haszowaniem

Algorytm selekcji Hoare a. Łukasz Miemus

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

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

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

Podstawy Informatyki. Wykład 6. Struktury danych

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

Zadanie projektowe nr 1

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

Listy, kolejki, stosy

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

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

WPROWADZENIE DO BAZ DANYCH

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

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

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

Sortowanie. Bartman Jacek Algorytmy i struktury

Baza danych. Baza danych to:

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

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

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

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

Lista liniowa dwukierunkowa

Struktury danych: stos, kolejka, lista, drzewo

Teoretyczne podstawy informatyki

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

Algorytmy i struktury danych. wykład 9

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

Struktury Danych i Złożoność Obliczeniowa

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

Wykład I. Wprowadzenie do baz danych

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

Analiza algorytmów zadania podstawowe

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

Krzysztof Kadowski. PL-E3579, PL-EA0312,

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

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

ALGORYTMY I STRUKTURY DANYCH

Teoretyczne podstawy informatyki

Algorytmy i struktury danych

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

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

Teoretyczne podstawy informatyki

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

Podstawowe struktury danych

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

Drzewa wyszukiwań binarnych (BST)

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

Programowanie obiektowe

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

Transkrypt:

Podstawy Informatyki Metody dostępu do danych alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi

Plan wykładu 1 Wprowadzenie Czym zajmuje się informatyka 2 Wprowadzenie Podstawowe problemy baz danych Struktury danych 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.

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, 20-26.10.1968 r.

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.

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.

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.

- 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]

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]

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

Plan wykładu Wprowadzenie Podstawowe problemy baz danych Struktury danych Najwcześniejsze znane użycie terminu baza danych miało miejsce w listopadzie 1963. 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.

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).

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

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.

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 34567890123 Kowalska Anna Gliwice 45678901234 Nowak Tomasz Katowice 56789012345 Testowy Jan Bytom 67890123456 Kowalska Anna Gliwice Tablicę dwuwymiarową T[m,n] przedstawiamy jako m szeregowo ustawionych tablic o rozmiarze n.

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.

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.

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

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

danego kluczem

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.

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.

Ś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.

Ś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

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;

- przykład Szukany klucz: 9 (left) l = 1 (right) r = 10 (middle) m = (1 + 10) div 2 = 5 1 2 3 4 5 6 7 8 9 10

- przykład Szukany klucz: 9 (left) l = 6 (right) r = 10 (middle) m = (6 + 10) div 2 = 8 1 2 3 4 5 6 7 8 9 10

- przykład Szukany klucz: 9 (left) l = 9 (right) r = 10 (middle) m = (9 + 10) div 2 = 9 1 2 3 4 5 6 7 8 9 10

- przykład c.d. Szukany klucz: 5 liczba prób: 1 1 2 3 4 5 6 7 8 9 10 5 krok 1

- przykład c.d. Szukany klucz: 8 liczba prób: 2 1 2 3 4 5 6 7 8 9 10 5 krok 1 2 8 krok 2

- przykład c.d. Szukany klucz: 6 liczba prób: 3 1 2 3 4 5 6 7 8 9 10 5 krok 1 2 8 krok 2 1 3 6 9 krok 3

- przykład c.d. Szukany klucz: 7 liczba prób: 4 1 2 3 4 5 6 7 8 9 10 5 krok 1 2 8 krok 2 1 3 6 9 krok 3 4 7 10 krok 4

- przykład c.d. Szukany klucz: liczba prób: 1 2 3 4 5 6 7 8 9 10 5 krok 1 2 8 krok 2 1 3 6 9 krok 3 4 7 10 krok 4 Powstało drzewo binarne idealnie zrównoważone.

Ś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

Ś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 γ 0.577 jest stałą Eulera. L = 2(log 2 (N) + γ) 3, Drzewo wyważone skraca nam drogę poszukiwań średnio o 39%.

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)!

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.

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.

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

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.

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.

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 + 2 1 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) +... + 4P 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.

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 + 2 1 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) +... + 4P 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.

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 + 2 1 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) +... + 4P 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.

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 + 2 1 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) +... + 4P 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.

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 + 2 1 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) +... + 4P 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.

Wykres E n+1 dla 100-elementowej tablicy

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.

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.

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