Temat: Struktury do przechowywania danych w pamici zewntrznej. B - drzewa. B * - drzewa. B + - drzewa.

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

Download "Temat: Struktury do przechowywania danych w pamici zewntrznej. B - drzewa. B * - drzewa. B + - drzewa."

Transkrypt

1 Temat: Struktury do przechowywania danych w pamici zewntrznej. B - drzewa. B * - drzewa. B + - drzewa. Podstawow jednostk w operacjach wejcia - wyjcia zwizanych z dyskiem (pamici zewntrzn) jest blok. czas dostpu czas szukania cieki + bezwładno obrotowa (ok. 1/2 obrotu) + czas przesyłania 1

2 Przykład Załómy, e dysk ma nastpujce parametry: 40 ms trwa znalezienie cieki, wykonuje 3000 obrotów na minut, przesyła dane do pamici wewntrznej z prdkoci 1000 kb/s. 1. Odczytujemy blok 5kB z dysku i przesyłamy do pamici wewntrznej: czas dostpu = 40 ms + 10 ms +5 ms = 55 ms 2. Odczytujemy dwa bloki po 5 kb z dysku i przesyłamy do pamici wewntrznej: czas dostpu = 2 ( 40 ms + 10 ms + 5 ms) = 110 ms 3. Odczytujemy blok 10 kb z dysku i przesyłamy do pamici wewntrznej: czas dostpu = 40 ms + 10 ms +10 ms = 60 ms Kady dostp do dysku jest bardzo kosztowny. Dane w pamici zewntrznej powinny by ujte w tak struktur, która minimalizuje liczb dostpów. 2

3 Przyjmijmy, e w pliku znajduje si n danych. Rozmiar bloku danych, który przesyłamy do pamici wewntrznej wynosi k. Rozwaamy algorytmy realizacji operacji słownikowych: search(d, S) - wyszukiwanie danych d w zbiorze S insert(d, S) - dodanie danych d do zbioru S delete(d, S) - usuwanie danych d ze zbioru S. 1. Pliki nieuporzdkowane Jeden dostp do pliku realizuje zapis albo odczyt bloku zawierajcego k danych. search(d, S) : Algorytm wyszukiwania polega na przesłaniu co najwyej n/k bloków. insert(d, S) : Algorytm wstawianiu wymaga przesłania co najwyej n/k bloków w celu sprawdzenia, czy element d S. Jeeli ostatni blok jest pełny i d S, to element d jest wstawiany do nowego, n/k+1 bloku i nowy blok jest przesłany (zapisywany) w pliku. Tak wic koszt pesymistyczny całej operacji wynosi n/k+1. 3

4 delete(d, S) : Algorytm usuwania wymaga przesłania co najwyej n/k bloków w celu sprawdzenia, czy element d S. Jeeli element d znajdował si w bloku o numerze i, to blok ten jest uzupełniany ostatnim elementem z bloku o numerze n/k, a nastpnie zostaje zapisany jako blok o numerze i. Zmieniony ostatni blok pliku jest równie zapisywany na dysku, o ile po usuniciu z niego elementu ni stał si pusty. Koszt całkowity operacji delete wynosi wic: i+1+2. Jeeli i = n/k-1, to koszt wynosi: n/k-1+1+2=n/k+2 i jest to koszt pesymistyczny operacji delete. l l d i... n/k-1 n/k Podstawow wad tej struktury jest: - długi czas działania operacji, - zestaw danych jest nieuporzdkowany. Podstawow zalet natomiast jest to, e: - nie jest uywana dodatkowa pami, - prostota algorytmów. 4

5 Struktura plików nieuporzdkowanych moe by zastosowana, gdy dane s zawsze przetwarzane sekwencyjnie, bez wykorzystania porzdku. 2. Struktury danych realizujce wyłcznie wyszukiwanie w pliku danych a) Pliki z funkcj mieszajc Załómy, e mamy okrelon funkcj mieszajc: { 0,1,... n / k 1} h : U, gdzie U jest uniwersum słownika Wartoci funkcji haszujcej jest numer bloku, w którym powinien znajdowa si wyszukiwany element. Tablica haszujca zawiera adresy bloków. Tablica ta jest równie zapisana na dysku. Algorytm wyszukiwania polega na przesłaniu do pamici wewntrznej bloku o numerze h(d). Koszt operacji jest zatem stały. Zalet tej metody jest bardzo szybki czas realizacji operacji search. Wad jest zuycie dodatkowej pamici dyskowej na tablic haszujc. Struktura taka nie powinna by uywana, gdy słownik jest modyfikowany, czyli realizowane jest usuwanie bd wstawianie. 5

6 b) Sekwencyjne pliki indeksowe W tej metodzie dane przechowywane s w tzw. pliku głównym, uporzdkowanym wg danej relacji. Oprócz pliku głównego tworzony jest plik pomocniczy nazywany indeksem rzadkim. Dla kadego bloku pliku głównego w indeksie rzadkim znajduje si para (v, b), gdzie b jest adresem (numerem) bloku, a v najmniejsz dan w bloku według relacji porzdkujcej. Plik główny i indeks rzadki (1, 1) (9, 2) (17, 3) (51, 4)... 1: : : : Zauwamy, e plik główny ma n/k bloków, a indeks rzadki n/k 2 bloków. Algorytm wyszukiwania search(d, S) realizuje albo: sekwencyjne przegldanie bloków indeksu rzadkiego, a do momentu: (*) znalezienia bloku (v, b) w pliku indeksu rzadkiego takiego, e v>d. Do pamici wewntrznej przesyłany jest blok b-1. Jeeli dla wszystkich par indeksu rzadkiego warunek v>d nie jest spełniony, to przesyłamy ostatni blok pliku głównego. Koszt pesymistyczny operacji wyszukiwania wynosi 1+n/k 2 6

7 albo binarne wyszukiwanie bloku spełniajcego warunek (*). Koszt pesymistyczny operacji wyszukiwania wynosi wówczas 2+log 2 n/k 2. Zalet tej struktury jest niski czas wyszukiwania (zwłaszcza przy zastosowaniu wyszukiwania binarnego) i fakt, e dane w pliku s uporzdkowane. Wad natomiast jest konieczno utworzenia dodatkowego pliku indeksu rzadkiego i fakt, e nie opłaca si w tej strukturze, ze wzgldu na wysoki koszt czasowy, realizacja pozostałych operacji słownikowych. 3. Definicja B - drzewa ( B - drzewo klasyczne) B - drzewo T jest drzewem wielokierunkowym z korzeniem o nastpujcych własnociach: 1. Kady wzeł x ma nastpujce pola: (a) n[x] - liczba kluczy aktualnie zapamitanych w wle x, (b) n[x] kluczy zapamitanych w porzdku niemalejcym key 1 [x] key 2 [x]... key n[x] [x] (key i [x]- i - ty klucz w wle x) (c) leaf[x] - pole logiczne, którego wartoci jest 1, jeli x jest liciem albo 0, jeli x jest wzłem wewntrznym. Typ wskanika na wzeł B - drzewa oznaczmy przez wsk. 7

8 2. Jeli x jest wzłem wewntrznym, to zawiera take n[x]+1 wskaników do synów c 1 [x], c 2 [x], c n[x]+1 [x]. Licie nie maj synów, wic ich pola c i nie s zdefiniowane. Schemat budowy wzła wewntrznego x typu wsk n[x] key 1 [x] key 2 [x]... key n[x] [x] leaf[x] c 1 [x] c 2 [x]... c n[x] [x] c n[x]+1 [x] 3. Klucze key i [x] rozdzielaj przedziały kluczy pamitanych w poddrzewach: Jeli k i jest dowolnym kluczem z poddrzewa o korzeniu c i [x], to k key [ x] k 2 key 2[ x] key n[ x][ x] k n[ x] Wszystkie licie le na tej samej głbokoci. 5. Istniej dolne i górne ograniczenia na liczb kluczy w danym wle. Ograniczenia te zale od ustalonej liczby całkowitej t 2 nazywanej minimalnym stopniem B-drzewa. (a) Kady wzeł róny od korzenia musi mie co najmniej t-1 kluczy. Kady wzeł wewntrzny róny od korzenia ma zatem co najmniej t synów. Jeli drzewo jest niepuste, to korze musi mie co najmniej jeden klucz. (b) Kady wzeł moe zawiera co najwyej 2t-1 kluczy. Dlatego kady wzeł wewntrzny moe mie co 8

9 najwyej 2t synów. Powiemy, e wzeł jest pełny, jeli zawiera dokładnie 2t-1 kluczy. Najprostsze B-drzewo ma minimalny stopie t = 2. Kady wzeł wewntrzny ma wtedy 1, 2 lub 3 synów. W praktyce uywa si duo wikszych wartoci t (co najmniej 100). Przykład B-drzewo o minimalnym stopniu t = 3. Kady wzeł wewntrzny róny od korzenia ma co najmniej t-1=2 kluczy i co najwyej 2t-1=5 kluczy. Kady wzeł wewntrzny ma 6 wskaników Maksymalna wysoko B- drzewa Mona si spodziewa, e koszt operacji słownikowych zrealizowanych na B-drzewie zasadniczo zaley od jego wysokoci. Przez n oznaczymy rozmiar słownika. Jaka bdzie maksymalna wysoko B-drzewa dla danego n 1 i minimalnego stopnia t 2? 9

10 Jeeli B - drzewo ma wysoko h, to liczba jego wzłów jest najmniejsza, gdy korze zawiera jeden klucz, a wszystkie pozostałe wzły zawieraj t-1 kluczy t-1 t-1 t-1... t-1 t-1... t-1 t-1... t-1 t-1... t-1 t-1... t-1 t-1... t-1 Głboko Liczba wzłów t 3 2t 2 4 Std: n 1+ h 1 1 i 1 h ( t 1) 2t = 1+ 2( t 1) = 2t 1 i= 1 n + 1 h logt 2 t t h 4. Wyszukiwanie w B-drzewie x - wskanik na B-drzewo, k - poszukiwany klucz Jeeli k znajduje si w drzewie, to wartoci funkcji B_tree_search jest wskanik na wzeł, w którym znajduje si poszukiwany klucz. Jeeli k nie ma w drzewie, to funkcja zwraca adres pusty. 10

11 B_tree_search(x, k) i=1; while (i<=n[x] && k>key i [x]) i++; if (i<= n[x] && (k == key i [x]) return x; if (leaf[x]) return NULL; else { Disk_Read(c i [x]); return B_tree_search(c i [x],k); } Złoono czasowa Liczba dostpów do stron na dysku w funkcji B_tree_search wynosi Θ ( h) = Θ( logt n), gdzie h jest wysokoci drzewa, a n liczb zapisanych w nim kluczy. 6. Tworzenie pustego B-drzewa Wstawienie pierwszego klucza do B - drzewa jest poprzedzone utworzeniem pustego wzła, który bdzie korzeniem drzewa (adres root). B_tree_Create (root) przydziel pam dla root ; leaf[root]=1; n[root]=0; Disk_Write(root); 11

12 Koszt czasowy operacji tworzenia pustego B-drzewa jest O(1) ze wzgldu na liczb dostpów dyskowych. 7. Rozbijanie wzła w B-drzewie Kluczowym elementem algorytmu wstawiania do B - drzewa jest rozbijanie "pełnego" wzła y na dwa wzły o t-1 kluczach. Wzeł y jest rozbijany wzgldem rodkowego klucza key t [y], który jest przesuwany do ojca wzła y. Załómy tymczasowo, e ojciec wzła y nie jest "pełny". Jeeli wzeł y jest korzeniem drzewa (nie ma ojca), to wysoko drzewa po rozbiciu ronie o 1. x - "niepełny" wzeł wewntrzny, znajdujcy si w pamici wewntrznej, i - indeks z zakresu 1..n[x]+1, y - "pełny" wzeł taki, e y = c i [x]. Procedura B_tree_Split_Child rozbija y na dwa wzły i zmienia x tak, aby był uwzgldniony jego nowy syn. B_tree_Split_Child(x, i, y) przydziel adres nowemu wzłowi z ; leaf[z]=leaf[y]; n[z]=t-1; for (j=1; j<=t-1; j++) key j [z]= key j+t [y]; if (!leaf[y]) for (j=1; j<=t; j++) c j [z]= c j+t [y]; n[y]=t-1; for (j=n[x]+1;j>=i+1;j--) c j+1 [x]= c j [x]; c i+1 [x]= z; for (j=n[x]; j>=i; j--) do key j+1 [x]= key j [x]; key i [x]= key t [y]; n[x]=n[x]+1; Disk_Write(y); Disk_Write(z); Disk_Write(x); 12

13 x Przykład... N, W... key i-1 [x] key i [x] x key i+1 [x] key i [x] key i-1 [x]... N, S, W... y=c i [x] P Q R S T U V y=c i [x] P Q R z=c i+1 [x] T U V Rozbijanie wzła z t = 4. Wzeł y jest rozbijany na dwa wzły: y oraz z, rodkowy klucz S z y zostaje przesunity do ojca y. root H s A D F H L N P r r A D F L N P Rozbijanie korzenia z t = 4. Korze r jest rozbijany na dwa wzły i jest tworzony nowy korze s. Nowy korze zawiera rodkowy klucz z r, a oba wzły powstałe z rozbicia zostaj jego synami. Rozbicie korzenia powoduje zwikszenie wysokoci drzewa o 1. 13

14 Koszt czasowy realizacji procedury B_tree_Split_Child jest równie O(1). 8. Wstawianie klucza do B drzewa root korze drzewa, k- wstawiany element B_tree_Insert(root, k) r=root; if (n[r]==2t-1) { przydziel pami wzłowi s ; root=s; leaf[s]=0; n[s]=0; c 1 [s]=r; B_tree_Split_Child(s, 1, r); B_tree_Insert_NoFull(s, k); } else B_tree_Insert_NoFull(r, k); B_tree_Insert_NoFull(x, k); i=n[x]; if (leaf[x]) { while (i>=1 && k<key i [x]) do { key i+1 [x]= key i [x]; i=i--; } key i+1 [x]=k; n[x]=n[x]+1; Disk_Write(x); } else { while (i>=1 && (k<key i [x]) i--; i++; 14

15 } Disk_Read(c i [x]); if (n[c i [x]]=2t-1) { B_tree_Split_Child(x, i, c i [x]); if (k> key i [x]) i++; } B_tree_Insert_NoFull(c i [x], k); Przykład (t = 3) a) pocztkowe drzewo G M P X A C D E J K N 0 R S T U V Y Z b) po wstawieniu B G M P X A BC D E J K N 0 R S T U V Y Z c) po wstawieniu Q G M P T X A BC D E J K N 0 Q R S U V Y Z d) po wstawieniu L P G M T X A BC D E J K L N 0 Q R S U V Y Z 15

16 e) po wstawieniu F P C G M T X A B D E F J K L N 0 Q R S U V Y Z Koszt pesymistyczny operacji wstawiania do B - drzewa jest rzdu wysokoci drzewa O(h)=O(log t n). Jak czsto mona si spodziewa koniecznoci rozdzielania wzłów? Rozdzielanie korzenia B-drzewa powoduje powstanie dwóch nowych wzłów. We wszystkich pozostałych przypadkach rozdzielanie zwiksza liczb wzłów w B - drzewie tylko o 1. Podczas konstruowania B - drzewa o p - wzłach rozdzielenie wzła trzeba wykona p - h razy, gdzie h jest wysokoci B - drzewa. W B - drzewie o p wzłach i minimalnym stopniu t jest co najmniej 1+ ( t 1)( p 1) kluczy. Proporcja liczby rozdziele do liczby kluczy w B - drzewie dana jest zatem wzorem: p h 1+ ( t 1)( p 1) Po podzieleniu licznika i mianownika przez p-h i obserwacji, e 1 p h dy do 0, a p 1 p h dy do 1 ze wzrostem p, wnioskujemy, e rednie prawdopodobiestwo rozdzielania 1 wynosi: t 1. Na przykład, gdy t = 5 prawdopodobiestwo to jest równe 0,25, ale dla t=500 wynosi tylko 0,002. Jest to zgodnie z oczekiwaniem; im wiksza pojemno jednego wzła, tym rzadziej trzeba wzły rozdziela. 16

17 9. Usuwanie klucza z B drzewa Załómy, e chcemy usun klucz k z poddrzewa o korzeniu w wle x. Zakładamy równie, e gdy z korzenia x zostaj usunite wszystkie klucze i x jest wzłem wewntrznym, to jest on wtedy usuwany, a jego jedyny syn c i [x] zostaje nowym korzeniem drzewa. W ten sposób wysoko drzewa jest zmniejszana o jeden, a własno, e korze drzewa zawiera co najmniej jeden klucz, jest zachowana (chyba, e drzewo jest puste). Opis algorytmu usuwania klucza z B - drzewa 1. Jeli klucz k jest w wle x i x jest liciem, to usu klucz k z x. 2. Jeli klucz k jest w wle x i x jest wzłem wewntrznym, to wykonaj: a) Niech y bdzie synem x poprzedzajcym k. Jeli y ma co najmniej t kluczy, to w poddrzewie o korzeniu y wyznacz poprzednik k ' klucza k. Rekurencyjnie usu k ' i w wle x zastp k przez k '. b) Symetrycznie, jeli syn z, który wystpuje po k w wle x, ma co najmniej t kluczy, to wyznacz nastpnik k ' dla k w poddrzewie o korzeniu w z. Rekurencyjnie usu k ' i zastp k przez k ' w x. c) Jeli obaj synowie y i z maj tylko po t-1 kluczy, to przenie k i wszystko z wzła z do y. W wyniku tej operacji klucz k i wskanik do z zostaj usunite z x. Nastpnie zwolnij pami przydzielon dla z i usu rekurencyjnie k z y. 3. Jeeli klucz k nie wystpuje w wewntrznym wle x, to wyznacz korze c i [x] poddrzewa, w którym musi znajdowa si k (jeli tylko jest w drzewie). Jeli c i [x] ma tylko t-1 kluczy, to wykonaj krok 3a) lub 3b) w celu zagwarantowania, e zejcie rekurencyjne nastpuje do 17

18 wzła zawierajcego co najmniej t kluczy. Nastpnie usu rekurencyjnie k z właciwego poddrzewa. a) Jeli w wle c i [x] jest tylko t-1 kluczy, ale jeden z jego ssiednich braci ma t kluczy, to umie w c i [x] dodatkowy klucz, przesuwajc odpowiedni klucz z x, a w jego miejsce przenoszc klucz z lewego lub prawego brata - z tego, który zawiera t kluczy. Na koniec przesu jeszcze z wybranego brata do c i [x] wskanik do odpowiedniego syna. b) Jeli c i [x] i ssiedni bracia maj po t-1 kluczy, to połcz c i [x] z jednym z ssiednich braci, przesuwajc odpowiedni klucz z x do nowo powstałego wzła. Przesunity klucz jest kluczem rodkowym w nowym wle. Poniewa wikszo kluczy w B - drzewie znajduje si w liciach, moemy oczekiwa, e włanie te klucze s usuwane najczciej. W tym przypadku usuwanie jest wykonywane w jednym przejciu od korzenia do licia. Jeli jest usuwany klucz z wzła wewntrznego, to oprócz przejcia "w dół" drzewa moe by jeszcze konieczny powrót do wzła, którego klucz jest usuwany, w celu zastpienia go przez poprzednik lub nastpnik w drzewie. Złoono czasowa operacji usuwania klucza z B - drzewa jest taka sama (zarówno pesymistyczna jak i rednia) operacji wstawiania. 18

19 Przykład (t = 3) a) Pocztkowe drzewo P C G M T X A B D E F J K L N O Q R S X b) Po usuniciu F: przypadek 1 U V Y Z P C G M T X A B D E J K L N O Q R S X c) Po usuniciu M: przypadek 2a U V Y Z P C G L T X A B D E J K N O Q R S X d) Po usuniciu G: przypadek 2c U V Y Z P C L T X A B D E J K N O Q R S X U V Y Z 19

20 e) Po usuniciu D: przypadek 3b C L P T X A B E J K N O Q R S X U V Y Z f) Po usuniciu N: przypadek 3a C L Q T X A B E J K O P R S U V Y Z Z definicji B - drzewa wynika, e s one wypełnione w co najmniej 50%. Moe si wic zdarzy, e 50% miejsca si w nich "marnuje". Analiza i symulacje wykazuj jednak, e po duej liczbie losowych wstawie i usuni B - drzewo jest wypełnione w około 69%, a póniejsze zmiany w proporcji zajtego miejsca s ju bardzo niewielkie. To, e B - drzewo bdzie wypełnione całkowicie, jest równie mało prawdopodobne, celowe wic wydaje si przyjcie dodatkowych warunków. 20

21 10. B * - drzewa B * - drzewo jest odmian B - drzewa wprowadzon przez Donalda Knutha, a nazwan tak przez Douglasa Comera. W B * - drzewie wszystkie wzły z wyjtkiem korzenia musz by wypełnione przynajmniej w dwóch trzecich, a nie tylko w połowie, jak w zwykłym B - drzewie. Dokładniej, liczba kluczy k, w nie bdcym korzeniem wle B * - drzewa, o minimalnym stopniu t spełnia warunek: 4t k t Czsto rozdzielania wzłów zmniejszamy, opóniajc operacj rozdzielania, a w odpowiednim momencie rozdzielajc dwa wzły na trzy zamiast jednego na dwa. Operacj rozdzielenia opónia si, próbujc przemieszcza klucze midzy wzłem, a jego bratem, kiedy wzeł jest pełny. 21

22 Przykład (t = 4) a) Drzewo pocztkowe K A B C F G H I M O R S T W Y b)po wstawieniu E G O A B C E H I K M R S T W Y Zwrómy uwag, e równo zostały podzielone nie tylko klucze, ale i wolne miejsca, dziki czemu wzeł, który jest pełny, moe teraz pomieci jeszcze jeden klucz. Jeli brat pełnego wzła jest take pełny, to trzeba wykona operacj rozdzielania: tworzy si jeden nowy wzeł, klucze z wzła i jego brata (wraz z rozdzielajcym je kluczem z ojca) s równo dzielone midzy trzy wzły, a dwa oddzielajce je klucze s umieszczane w ojcu. Wszystkie trzy wzły biorce udział w operacji rozdzielania pozostaj wypełnione przynajmniej w dwóch trzecich. 22

23 11. B + - drzewa Jak zrealizowa w klasycznym B - drzewie algorytm wypisania wszystkich kluczy w porzdku rosncym? Mona by uy łatwej do zaimplementowania metody inorder, ale dla wszystkich wzłów wewntrznych byłby wypisywany jednorazowo tylko jeden klucz naraz, a potem nastpny krok wymagałby wczytania innego bloku. W B - drzewie odwołania do danych wystpuj w kadym wle drzewa, natomiast w B + - drzewie - jedynie w liciach. Wewntrzne wzły B + - drzewa słu jako indeksy umoliwiajce szybki dostp do danych; ta cz drzewa jest nazywana zbiorem indeksowym. Licie s zazwyczaj połczone w list. Przegldanie tej listy daje sekwencyjny dostp do danych. Wstawianie klucza do licia, w którym jest jeszcze wolne miejsce, wymaga ustawienia kluczy w tym liciu we właciwej kolejnoci. Nie zmienia si przy tym zbiór indeksowy. Jeli klucz jest wstawiany do pełnego licia, to li ten jest rozdzielany, nowy li jest włczany do listy, klucze s rozdzielane równomiernie midzy stary i nowy li, a pierwszy klucz z nowego wzła jest kopiowany (a nie przemieszczany, jak w B - drzewie) do ojca jako separator pomidzy tymi limi. Jeli ojciec nie jest pełny, moe to wymaga lokalnej reorganizacji kluczy w tym wle. Nowy li jest tworzony i włczany do listy, klucze s rozdzielane midzy te dwa licie, a nowy separator zostaje skopiowany z nowego licia do ojca. Jeli ojciec jest pełny, to proces rozdzielania postpuje jak w zwykłym B - drzewie - zbiór indeksowy jest przecie B - drzewem. 23

24 Przykład (t = 3) a) Drzewo pocztkowe P G K... A B D E F G H I K O b) Po wstawieniu C P D G K... A B C D E F G H I K O Usunicie klucza z licia, jeli nie powoduje wystpienia niedoboru, ogranicza si do poprawienia ustawienia pozostałych kluczy w kolejnoci, bez zmian w zbiorze indeksowym. W szczególnoci, jeli trzeba skasowa klucz wystpujcy nie tylko w liciu, to po prostu usuwa si go z licia, ale pozostawia w wle wewntrznym. Powodem takiego postpowania jest to, e klucz ten nadal pomaga znale właciw ciek podczas wdrówki w dół B + - drzewa, poniewa wci poprawnie separuje klucze dwóch ssiednich synów swojego wzła, chocia sam separator nie wystpuje w adnym z tych dwóch poddrzew. 24

25 Przykład a) Drzewo pocztkowe P C F K... A B C D F H I K O b) Po usuniciu B P F K... A C D F H I K O Jeli usunicie klucza z licia powoduje niedobór, to albo klucze z tego licia i jego brata s równo rozdzielane midzy te dwa wzły, albo li zostaje usunity, a jego pozostałe klucze s przenoszone do jego brata. Powyszy rysunek ilustruje ten ostatni przypadek. Po usuniciu B pojawia si niedobór i dwa licie s łczone w jeden. Pierwszy klucz prawego ssiada wzła powstajcego po połczeniu jest kopiowany do ojca, a klucze w ojcu s porzdkowane. Obydwie te operacje wymagaj uaktualnienia mieszczcego si w ojcu klucza separujcego dwa licie. Usunicie licia moe te wywoła seri złcze wzłów w zbiorze indeksowym. 25

Bazy danych. Plan wykładu. Metody organizacji pliku rekordów. Pojcie indeksu. Wykład 11: Indeksy. Pojcie indeksu - rodzaje indeksów

Bazy danych. Plan wykładu. Metody organizacji pliku rekordów. Pojcie indeksu. Wykład 11: Indeksy. Pojcie indeksu - rodzaje indeksów Plan wykładu Bazy Wykład 11: Indeksy Pojcie indeksu - rodzaje indeksów Metody implementacji indeksów struktury statyczne struktury dynamiczne Małgorzata Krtowska Katedra Oprogramowania e-mail: mmac@ii.pb.bialystok.pl

Bardziej szczegółowo

Temat: Liniowe uporzdkowane struktury danych: stos, kolejka. Specyfikacja, przykładowe implementacje i zastosowania. Struktura słownika.

Temat: Liniowe uporzdkowane struktury danych: stos, kolejka. Specyfikacja, przykładowe implementacje i zastosowania. Struktura słownika. Temat: Liniowe uporzdkowane struktury danych: stos, kolejka. Specyfikacja, przykładowe implementacje i zastosowania. Struktura słownika. 1. Pojcie struktury danych Nieformalnie Struktura danych (ang. data

Bardziej szczegółowo

Bazy danych. Plan wykładu. Klucz wyszukiwania. Pojcie indeksu. Wykład 8: Indeksy. Pojcie indeksu - rodzaje indeksów

Bazy danych. Plan wykładu. Klucz wyszukiwania. Pojcie indeksu. Wykład 8: Indeksy. Pojcie indeksu - rodzaje indeksów Plan wykładu Bazy Wykład 8: Indeksy Pojcie indeksu - rodzaje indeksów Metody implementacji indeksów struktury statyczne struktury dynamiczne Małgorzata Krtowska Katedra Oprogramowania e-mail: mmac@ii.pb.bialystok.pl

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

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

Temat: Geometria obliczeniowa cz II. Para najmniej odległych punktów. Sprawdzenie, czy istnieje para przecinajcych si odcinków.

Temat: Geometria obliczeniowa cz II. Para najmniej odległych punktów. Sprawdzenie, czy istnieje para przecinajcych si odcinków. Temat: Geometria obliczeniowa cz II. Para najmniej odległych punktów. Sprawdzenie, czy istnieje para przecinajcych si odcinków. 1. Para najmniej odległych punktów WP: Dany jest n - elementowy zbiór punktów

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

.! $ Stos jest list z trzema operacjami: dodawanie elementów na wierzch stosu, zdejmowanie elementu z wierzchu stosu, sprawdzanie czy stos jest pusty.

.! $ Stos jest list z trzema operacjami: dodawanie elementów na wierzch stosu, zdejmowanie elementu z wierzchu stosu, sprawdzanie czy stos jest pusty. !"! " #$%& '()#$$ &%$! #$ %$ &%$& &$&! %&'" )$$! *$$&%$! +,- +-.! $ Celem wiczenia jest zapoznanie studenta ze strukturami: lista, stos, drzewo oraz ich implementacja w jzyku ANSI C. Zrozumienie działania

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

Temat: Struktury danych do reprezentacji grafów. Wybrane algorytmy grafowe.

Temat: Struktury danych do reprezentacji grafów. Wybrane algorytmy grafowe. Temat: Struktury danych do reprezentacji grafów. Wybrane algorytmy grafowe. Oznaczenia G = V, E - graf bez wag, gdzie V - zbiór wierzchołków, E- zbiór krawdzi V = n - liczba wierzchołków grafu G E = m

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

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

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

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

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

Przyspieszenie knn. Plan wykładu. Klasyfikacja w oparciu o przykładach. Algorytm klasyfikacji. Funkcja odległoci

Przyspieszenie knn. Plan wykładu. Klasyfikacja w oparciu o przykładach. Algorytm klasyfikacji. Funkcja odległoci Plan wykładu Przyspieszenie knn Ulepszone metody indeksowania przestrzeni danych: R-drzewo, R*-drzewo, SS-drzewo, SR-drzewo. Klasyfikacja w oparciu o przykładach Problem indeksowania przestrzeni obiektów

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

Temat: Problem najkrótszych cieek w grafach waonych, cz. I: Algorytmy typu label - setting.

Temat: Problem najkrótszych cieek w grafach waonych, cz. I: Algorytmy typu label - setting. Temat: Problem najkrótszych cieek w grafach waonych, cz. I: Algorytmy typu label - setting.. Oznaczenia i załoenia Oznaczenia G = - graf skierowany z funkcj wagi s wierzchołek ródłowy t wierzchołek

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

Każdy węzeł w drzewie posiada 3 pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste.

Każdy węzeł w drzewie posiada 3 pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste. Drzewa binarne Każdy węzeł w drzewie posiada pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste. Uporządkowanie. Zakładamy, że klucze są różne. Klucze leżące

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

Sposoby przekazywania parametrów w metodach.

Sposoby przekazywania parametrów w metodach. Temat: Definiowanie i wywoływanie metod. Zmienne lokalne w metodach. Sposoby przekazywania parametrów w metodach. Pojcia klasy i obiektu wprowadzenie. 1. Definiowanie i wywoływanie metod W dotychczas omawianych

Bardziej szczegółowo

Tworzenie bazy danych Biblioteka tworzenie tabel i powiza, manipulowanie danymi. Zadania do wykonani przed przystpieniem do pracy:

Tworzenie bazy danych Biblioteka tworzenie tabel i powiza, manipulowanie danymi. Zadania do wykonani przed przystpieniem do pracy: wiczenie 2 Tworzenie bazy danych Biblioteka tworzenie tabel i powiza, manipulowanie danymi. Cel wiczenia: Zapoznanie si ze sposobami konstruowania tabel, powiza pomidzy tabelami oraz metodami manipulowania

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

Algorytmy zwiazane z gramatykami bezkontekstowymi

Algorytmy zwiazane z gramatykami bezkontekstowymi Algorytmy zwiazane z gramatykami bezkontekstowymi Rozpoznawanie j zyków bezkontekstowych Problem rozpoznawania j zyka L polega na sprawdzaniu przynale»no±ci sªowa wej±ciowego x do L. Zakªadamy,»e j zyk

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

1) Grafy eulerowskie własnoci algorytmy. 2) Problem chiskiego listonosza

1) Grafy eulerowskie własnoci algorytmy. 2) Problem chiskiego listonosza 165 1) Grafy eulerowskie własnoci algorytmy 2) Problem chiskiego listonosza 166 Grafy eulerowskie Def. Graf (multigraf, niekoniecznie spójny) jest grafem eulerowskim, jeli zawiera cykl zawierajcy wszystkie

Bardziej szczegółowo

Bazy danych. Plan wykładu. Podzapytania - wskazówki. Podzapytania po FROM. Wykład 5: Zalenoci wielowartociowe. Sprowadzanie do postaci normalnych.

Bazy danych. Plan wykładu. Podzapytania - wskazówki. Podzapytania po FROM. Wykład 5: Zalenoci wielowartociowe. Sprowadzanie do postaci normalnych. Plan wykładu azy danych Wykład 5: Zalenoci wielowartociowe. Sprowadzanie do postaci normalnych. Dokoczenie SQL Zalenoci wielowartociowe zwarta posta normalna Dekompozycja do 4NF Przykład sprowadzanie do

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

Wstp. Warto przepływu to

Wstp. Warto przepływu to 177 Maksymalny przepływ Załoenia: sie przepływow (np. przepływ cieczy, prdu, danych w sieci itp.) bdziemy modelowa za pomoc grafów skierowanych łuki grafu odpowiadaj kanałom wierzchołki to miejsca połcze

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

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

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

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

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

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

Listy i operacje pytania

Listy i operacje pytania Listy i operacje pytania Iwona Polak iwona.polak@us.edu.pl Uniwersytet l ski Instytut Informatyki pa¹dziernika 07 Który atrybut NIE wyst puje jako atrybut elementów listy? klucz elementu (key) wska¹nik

Bardziej szczegółowo

Szukanie najkrótszych dróg z jednym ródłem

Szukanie najkrótszych dróg z jednym ródłem Szukanie najkrótszych dróg z jednym ródłem Algorytm Dijkstry Załoenia: dany jest spójny graf prosty G z wagami na krawdziach waga w(e) dla kadej krawdzi e jest nieujemna dany jest wyróniony wierzchołek

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

Drzewa czerwono-czarne.

Drzewa czerwono-czarne. Binboy at Sphere http://binboy.sphere.p l Drzewa czerwono-czarne. Autor: Jacek Zacharek Wstęp. Pojęcie drzewa czerwono-czarnego (red-black tree) zapoczątkował Rudolf Bayer w książce z 1972 r. pt. Symmetric

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

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

Bazy danych. Plan wykładu. Zalenoci funkcyjne. Wykład 4: Relacyjny model danych - zalenoci funkcyjne. SQL - podzapytania A B

Bazy danych. Plan wykładu. Zalenoci funkcyjne. Wykład 4: Relacyjny model danych - zalenoci funkcyjne. SQL - podzapytania A B Plan wykładu Bazy danych Wykład 4: Relacyjny model danych - zalenoci funkcyjne. SQL - podzapytania Definicja zalenoci funkcyjnych Klucze relacji Reguły dotyczce zalenoci funkcyjnych Domknicie zbioru atrybutów

Bardziej szczegółowo

Gramatyki regularne i automaty skoczone

Gramatyki regularne i automaty skoczone Gramatyki regularne i automaty skoczone Alfabet, jzyk, gramatyka - podstawowe pojcia Co to jest gramatyka regularna, co to jest automat skoczony? Gramatyka regularna Gramatyka bezkontekstowa Translacja

Bardziej szczegółowo

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

Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury. Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury. Algorytm zachłanny ( ang. greedy algorithm) wykonuje zawsze działanie, które wydaje si w danej chwili

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

Bazy danych. Plan wykładu. Model logiczny i fizyczny. Operacje na pliku. Wykład 10: Fizyczna organizacja danych w bazie danych

Bazy danych. Plan wykładu. Model logiczny i fizyczny. Operacje na pliku. Wykład 10: Fizyczna organizacja danych w bazie danych 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ł zarzdzania miejscem na dysku i moduł zarzdzania buforami

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

Zadania do wykonaj przed przyst!pieniem do pracy:

Zadania do wykonaj przed przyst!pieniem do pracy: wiczenie 3 Tworzenie bazy danych Biblioteka tworzenie kwerend, formularzy Cel wiczenia: Zapoznanie si ze sposobami konstruowania formularzy operujcych na danych z tabel oraz metodami tworzenia kwerend

Bardziej szczegółowo

Studium przypadku Case Study CCNA2-ROUTING

Studium przypadku Case Study CCNA2-ROUTING Na podstawie oryginału CISCO, przygotował: mgr in. Jarosław Szybiski Studium przypadku Case Study CCNA2-ROUTING Ogólne załoenia dla projektu Przegld i cele Podczas tego wiczenia uczestnicy wykonaj zadanie

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

Plan wykładu. Reguły asocjacyjne. Przykłady asocjacji. Reguły asocjacyjne. Jeli warunki to efekty. warunki efekty

Plan wykładu. Reguły asocjacyjne. Przykłady asocjacji. Reguły asocjacyjne. Jeli warunki to efekty. warunki efekty Plan wykładu Reguły asocjacyjne Marcin S. Szczuka Wykład 6 Terminologia dla reguł asocjacyjnych. Ogólny algorytm znajdowania reguł. Wyszukiwanie czstych zbiorów. Konstruowanie reguł - APRIORI. Reguły asocjacyjne

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

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

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

Przypomnij sobie krótki wstęp do teorii grafów przedstawiony na początku semestru.

Przypomnij sobie krótki wstęp do teorii grafów przedstawiony na początku semestru. Spis treści 1 Drzewa 1.1 Drzewa binarne 1.1.1 Zadanie 1.1.2 Drzewo BST (Binary Search Tree) 1.1.2.1 Zadanie 1 1.1.2.2 Zadanie 2 1.1.2.3 Zadanie 3 1.1.2.4 Usuwanie węzła w drzewie BST 1.1.2.5 Zadanie 4

Bardziej szczegółowo

Rekurencyjne struktury danych

Rekurencyjne struktury danych Andrzej Jastrz bski Akademia ETI Dynamiczny przydziaª pami ci Pami, która jest przydzielana na pocz tku dziaªania procesu to: pami programu czyli instrukcje programu pami statyczna zwi zana ze zmiennymi

Bardziej szczegółowo

oraz spełnia warunki: (*) dla wszystkich wierzchołków

oraz spełnia warunki: (*) dla wszystkich wierzchołków Temat: Problem najtaszego przepływu. Definicja problemu, przykład zastosowania. Algorytm Kleina. Algorytm Busackera Gowena. 1. Definicja problemu najtaszego przepływu Wejcie: Graf zorientowany G =

Bardziej szczegółowo

. Podstawy Programowania 2. Drzewa bst - część pierwsza. Arkadiusz Chrobot. 22 maja 2016

. Podstawy Programowania 2. Drzewa bst - część pierwsza. Arkadiusz Chrobot. 22 maja 2016 .. Podstawy Programowania 2 Drzewa bst - część pierwsza Arkadiusz Chrobot Zakład Informatyki 22 maja 2016 1 / 55 Plan.1 Wstęp.2 Definicje.3 Implementacja Typ bazowy i wskaźnik na korzeń Dodawanie elementu

Bardziej szczegółowo

Drzewa podstawowe poj

Drzewa podstawowe poj Drzewa podstawowe poj ecia drzewo graf reprezentujacy regularna strukture wskaźnikowa, gdzie każdy element zawiera dwa lub wiecej wskaźników (ponumerowanych) do takich samych elementów; wez ly (albo wierzcho

Bardziej szczegółowo

rysunek. Standardowym Przybornika Elips.

rysunek. Standardowym Przybornika Elips. 1. Na pocztek otwórz Corela 2. Kliknij na ikonie Nowy rysunek. Jeli program został wczeniej przez Ciebie otwarty i zamknłe tylko poprzedni plik, nacinij na ikon Nowy na pasku Standardowym - ukae si pusta

Bardziej szczegółowo

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,

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

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

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

Poradnik korzystania z serwisu UNET: Dostp do poczty elektronicznej ze strony WWW

Poradnik korzystania z serwisu UNET: Dostp do poczty elektronicznej ze strony WWW Poradnik korzystania z serwisu UNET: Dostp do poczty elektronicznej ze strony WWW W przypadku braku stosownego oprogramowania słucego do komunikacji z systemem pocztowym UNET uytkownik ma moliwo skorzystania

Bardziej szczegółowo

Kompilacja image z CVS

Kompilacja image z CVS Kompilacja image z CVS Tworzenie image na Dreamboxa nie jest tajemnic, a opis czynnoci, jakie naley wykona, aby stworzy własny soft mona znale na wikszoci niemieckich stron traktujcych o Dreamboxach. Kto

Bardziej szczegółowo

Projektowanie algorytmów rekurencyjnych

Projektowanie algorytmów rekurencyjnych C9 Projektowanie algorytmów rekurencyjnych wiczenie 1. Przeanalizowa działanie poniszego algorytmu dla parametru wejciowego n = 4 (rysunek 9.1): n i i

Bardziej szczegółowo

Mikrokontroler ATmega32. Tryby adresowania Rejestry funkcyjne

Mikrokontroler ATmega32. Tryby adresowania Rejestry funkcyjne Mikrokontroler ATmega32 Tryby adresowania Rejestry funkcyjne 1 Rozrónia si dwa główne tryby: adresowanie bezporednie i porednie (jeli jeden z argumentów jest stał, ma miejsce take adresowanie natychmiastowe)

Bardziej szczegółowo

WYKŁAD 12. Wzorce projektowe czynnociowe State Mediator

WYKŁAD 12. Wzorce projektowe czynnociowe State Mediator WYKŁAD 12 Wzorce projektowe czynnociowe State Mediator Behavioral Design Pattern: State [obj] Umoliwia obiektowi zmian zachowania gdy zmienia si jego stan wewntrzny. Dzieki temu obiekt zdaje si zmienia

Bardziej szczegółowo

Temat: Problem minimalnego drzewa Steinera. Definicja problemu. Zastosowania. Algorytm dokładny Hakimi. Algorytmy aproksymacyjne.

Temat: Problem minimalnego drzewa Steinera. Definicja problemu. Zastosowania. Algorytm dokładny Hakimi. Algorytmy aproksymacyjne. Temat: Problem minimalnego drzewa Steinera. Definicja problemu. Zastosowania. Algorytm dokładny Hakimi. Algorytmy aproksymacyjne. 1. Definicja problemu Wejcie: Graf spójny niezorientowany G =

Bardziej szczegółowo

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Kompresja danych Streszczenie Studia Dzienne Wykład 10, 1 Kwantyzacja wektorowa Kompresja danych Streszczenie Studia Dzienne Wykład 10, 28.04.2006 Kwantyzacja wektorowa: dane dzielone na bloki (wektory), każdy blok kwantyzowany jako jeden element danych. Ogólny

Bardziej szczegółowo

Distributed Hash Tables i ich zastosowania

Distributed Hash Tables i ich zastosowania Distributed Hash Tables i ich zastosowania Seminarium z Systemów Rozproszonych, 2005/2006 Spis treści 1 Czym sa DHT? Typowe zastosowania 2 3 Sieci P2P Cooperative File System Czym sa DHT? Typowe zastosowania

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

Bazy danych. Plan wykładu. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD)

Bazy danych. Plan wykładu. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD) Plan wykładu Bazy danych Wykład 2: Diagramy zwizków encji (ERD) Diagramy zwizków encji elementy ERD licznoci zwizków podklasy klucze zbiory słabych encji Małgorzata Krtowska Katedra Oprogramowania e-mail:

Bardziej szczegółowo

Skojarzenia. Najliczniejsze skojarzenia: Dokładne skojarzenia o maksymalnej sumie wag w obcionych pełnych grafach dwudzielnych.

Skojarzenia. Najliczniejsze skojarzenia: Dokładne skojarzenia o maksymalnej sumie wag w obcionych pełnych grafach dwudzielnych. 206 Skojarzenia Najliczniejsze skojarzenia: grafy proste dwudzielne, dowolne grafy proste. Dokładne skojarzenia o maksymalnej sumie wag w obcionych pełnych grafach dwudzielnych. 207 Definicje Def Zbiór

Bardziej szczegółowo

Bazy danych. Plan wykładu. Przetwarzanie zapyta. Etapy przetwarzania zapytania. Wykład 12: Optymalizacja zapyta. Etapy przetwarzanie zapytania

Bazy danych. Plan wykładu. Przetwarzanie zapyta. Etapy przetwarzania zapytania. Wykład 12: Optymalizacja zapyta. Etapy przetwarzanie zapytania Plan wykładu Bazy danych Wykład 12: Optymalizacja zapyta Etapy przetwarzanie zapytania Implementacja wyrae algebry relacji Reguły heurystyczne optymalizacji zapyta Kosztowa optymalizacja zapyta Małgorzata

Bardziej szczegółowo

Bazy danych. Plan wykładu. Pierwsza posta normalna. Druga posta normalna. Wykład 7: Sprowadzanie do postaci normalnych. DDL, DML

Bazy danych. Plan wykładu. Pierwsza posta normalna. Druga posta normalna. Wykład 7: Sprowadzanie do postaci normalnych. DDL, DML Plan wykładu azy danych Wykład 7: Sprowadzanie do postaci normalnych. DDL, DML Przykład sprowadzenia nieznormalizowanej relacji do 3NF SQL instrukcja EXISTS DDL DML (insert) Małgorzata Krtowska Katedra

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

Wzorce (szablony) template<class T> {definicja wzorca} lub template<class TypElementu> lub template<class TypElementu1, class TypElementu2>

Wzorce (szablony) template<class T> {definicja wzorca} lub template<class TypElementu> lub template<class TypElementu1, class TypElementu2> Wzorce (szablony) Wzorce pozwalaj na okrelenie, za pomoc pojedynczego fragmentu kodu, całej gamy powizanych (przecionych) funkcji nazywanych funkcjami wzorcowymi lub powizanych kas nazywanych klasami wzorcowymi.

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych Proste algorytmy sortowania Witold Marańda maranda@dmcs.p.lodz.pl 1 Pojęcie sortowania Sortowaniem nazywa się proces ustawiania zbioru obiektów w określonym porządku Sortowanie

Bardziej szczegółowo

Klonowanie MAC adresu oraz TTL

Klonowanie MAC adresu oraz TTL 1. Co to jest MAC adres? Klonowanie MAC adresu oraz TTL Adres MAC (Media Access Control) to unikalny adres (numer seryjny) kadego urzdzenia sieciowego (jak np. karta sieciowa). Kady MAC adres ma długo

Bardziej szczegółowo

I Powiatowy Konkurs Matematyka, Fizyka i Informatyka w Technice Etap finałowy 10 kwietnia 2013 grupa elektryczno-elektroniczna

I Powiatowy Konkurs Matematyka, Fizyka i Informatyka w Technice Etap finałowy 10 kwietnia 2013 grupa elektryczno-elektroniczna I Powiatowy Konkurs Matematyka, Fizyka i Informatyka w Technice Etap finałowy 10 kwietnia 2013 grupa elektryczno-elektroniczna (imi i nazwisko uczestnika) (nazwa szkoły) Arkusz zawiera 6 zada. Zadania

Bardziej szczegółowo

geometry a w przypadku istnienia notki na marginesie: 1 z 5

geometry a w przypadku istnienia notki na marginesie: 1 z 5 1 z 5 geometry Pakiet słuy do okrelenia parametrów strony, podobnie jak vmargin.sty, ale w sposób bardziej intuicyjny. Parametry moemy okrela na dwa sposoby: okrelc je w polu opcji przy wywołaniu pakiety:

Bardziej szczegółowo

System midzybankowej informacji gospodarczej Dokumenty Zastrzeone MIG DZ ver. 2.0. Aplikacja WWW ver. 2.1 Instrukcja Obsługi

System midzybankowej informacji gospodarczej Dokumenty Zastrzeone MIG DZ ver. 2.0. Aplikacja WWW ver. 2.1 Instrukcja Obsługi System midzybankowej informacji gospodarczej Dokumenty Zastrzeone MIG DZ ver. 2.0. Aplikacja WWW ver. 2.1 Instrukcja Obsługi 1.Wymagania techniczne 1.1. Wymagania sprztowe - minimalne : komputer PC Intel

Bardziej szczegółowo

Zastosowanie programu Microsoft Excel do analizy wyników nauczania

Zastosowanie programu Microsoft Excel do analizy wyników nauczania Grayna Napieralska Zastosowanie programu Microsoft Excel do analizy wyników nauczania Koniecznym i bardzo wanym elementem pracy dydaktycznej nauczyciela jest badanie wyników nauczania. Prawidłow analiz

Bardziej szczegółowo

Instalacja programu Sprzeda

Instalacja programu Sprzeda Instalacja programu Sprzeda 1. Aby zainstalowa program Sprzeda w wersji 2.10, na serwerze lub komputerze, na którym przechowywane bd dane programu, pozamykaj wszystkie działajce programy i uruchom plik

Bardziej szczegółowo

Program Sprzeda wersja 2011 Korekty rabatowe

Program Sprzeda wersja 2011 Korekty rabatowe Autor: Jacek Bielecki Ostatnia zmiana: 14 marca 2011 Wersja: 2011 Spis treci Program Sprzeda wersja 2011 Korekty rabatowe PROGRAM SPRZEDA WERSJA 2011 KOREKTY RABATOWE... 1 Spis treci... 1 Aktywacja funkcjonalnoci...

Bardziej szczegółowo

Drzewo binarne BST. LABORKA Piotr Ciskowski

Drzewo binarne BST. LABORKA Piotr Ciskowski Drzewo binarne BST LABORKA Piotr Ciskowski zadanie 1. drzewo binarne - 1 Zaimplementuj drzewo binarne w postaci: klasy Osoba przechowującej prywatne zmienne: liczbę całkowitą to będzie klucz, wg którego

Bardziej szczegółowo

Zaawansowane algorytmy i struktury danych

Zaawansowane algorytmy i struktury danych Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań teoretycznych z egzaminów. Strona 1 z 12 Pytania teoretyczne z egzaminu pisemnego z 25 czerwca 2014 (studia dzienne)

Bardziej szczegółowo

Program SMS4 Monitor

Program SMS4 Monitor Program SMS4 Monitor INSTRUKCJA OBSŁUGI Wersja 1.0 Spis treci 1. Opis ogólny... 2 2. Instalacja i wymagania programu... 2 3. Ustawienia programu... 2 4. Opis wskaników w oknie aplikacji... 3 5. Opcje uruchomienia

Bardziej szczegółowo

Algorytmy sortujące i wyszukujące

Algorytmy sortujące i wyszukujące Algorytmy sortujące i wyszukujące Zadaniem algorytmów sortujących jest ułożenie elementów danego zbioru w ściśle określonej kolejności. Najczęściej wykorzystywany jest porządek numeryczny lub leksykograficzny.

Bardziej szczegółowo

Wektor o pocztku i kocu odpowiednio w punktach. Prosta zawierajca punkty p i q: pq Półprosta zaczynajca si w punkcie p i zawierajca punkt q:.

Wektor o pocztku i kocu odpowiednio w punktach. Prosta zawierajca punkty p i q: pq Półprosta zaczynajca si w punkcie p i zawierajca punkt q:. Temat: Geometria obliczeniowa, cz I. Podstawowe algorytmy geometryczne. Problem sprawdzania przynalenoci punktu do wielokta. Problem otoczki wypukłej algorytmy Grahama, i Jarvisa. 1. Oznaczenia Punkty

Bardziej szczegółowo

Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II.

Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II. Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II. Poni»sze zadania s wyborem zada«z kolokwiów ze Wst pu do Informatyki jakie przeprowadziªem w ci gu ostatnich lat. Marek Zawadowski Zadanie 1 Napisz

Bardziej szczegółowo

zdefiniowanie kilku grup dyskusyjnych, z których chcemy odbiera informacje, dodawanie, usuwanie lub edycj wczeniej zdefiniowanych grup dyskusyjnych,

zdefiniowanie kilku grup dyskusyjnych, z których chcemy odbiera informacje, dodawanie, usuwanie lub edycj wczeniej zdefiniowanych grup dyskusyjnych, Wstp W nowoczesnym wiecie coraz istotniejsz rol odgrywa informacja i łatwy dostp do niej. Nie dziwi wic fakt, i nowoczesne telefony komórkowe to nie tylko urzdzenia do prowadzenia rozmów telefonicznych,

Bardziej szczegółowo

Rodzina B-drzew [ ]

Rodzina B-drzew [ ] Rodzina B-drzew [24.01.2011] Piotr Walkowski, 221135 Wrocªaw, 03.02.2011 Spis tre±ci 1 Rodzina B-drzew 2 2 B-Drzewo 2 2.1 oszacowanie wysoko±ci................................... 3 2.2 podstawowe operacje....................................

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