Równoleg le sortowanie przez scalanie
|
|
- Witold Kowalewski
- 7 lat temu
- Przeglądów:
Transkrypt
1 Równoleg le sortowanie przez scalanie Bartosz Zieliński 1 Zadanie Napisanie programu sortuj acego przez scalanie tablicȩ wygenerowanych losowo liczb typu double w którym każda z procedur scalania odbywa siȩ w innym procesie. Tablica do posortowania, jak również pomocnicza tablica (liczb uint), umieszczone s a w dzielonym segmencie pamiȩci. Procesy synchronizuj a swoje dzia lanie przy pomocy semaforów i komunikatów ipc. Podtablice o rozmiarze mniejszym od ustalonego powinny być sortowane przez wybór (najmniejszego elementu) w pojedyńczym procesie, zamiast bycia dalej dzielonymi i scalanymi. Dziȩki dodatkowej tablicy można uczynić z wyjściowej tablicy listȩ jednokierunkow a. Program powinien 1. Wylosować a nastȩpnie wypisać wylosowan a tablicȩ liczb double. 2. Dokonać niezbȩdnych inicjalizacji. 3. Rozwidlić siȩ na tyle procesów ile jest potrzebnych scaleń i sortowań przez wybór. 4. Posortować tablicȩ w możliwie najbardziej równoleg ly sposób. 5. Wypisać na ekranie posortowan a tablicȩ. 6. Pozostawić po sobie porz adek, tzn. żadnych zombi ani nieużywanych obiektów ipc po zakończeniu programu. Program wzorcowy mia l ok. 300 linii. Szczegó ly i wskazówki poniżej. 2 Tablice jako listy jednokierunkowe Zalet a list jest możliwość wstawiania lub usuwania elementów z wnȩtrza listy lokalnie. Gdy chcemy wstawić albo usun ać elementy z wnȩtrza tablicy, tak aby zachować kolejność pozosta lych elementów musimy przesun ać wszystkie pozosta le elementy stoj ace po prawej stronie usuwanego/wstawianego elementu. Jeśli jednak zależy nam na tym 1
2 aby elementy listy przechowywane by ly w pamiȩci dzielonej nie możemy przydzielać im pamiȩci przy pomocy funkcji malloc() zwracaj acej wskaźnik na pocz atek bloku pamiȩci znajduj acej siȩ w niedzielonej stercie. Rozwi azaniem jest przechowywanie wartości które chcemy u lożyć w listȩ w tablicy T elementów typu double w segmencie dzielonym, oraz zastosowanie pomocniczej tablicy (również w segmencie dzielonym) NEXT elementów uint. Aby otrzymać listȩ należy teraz zapisać w tablicy NEXT indeksy elementów w tablicy T, tak by T[NEXT[i]] by l elementem nastȩpuj acym bezpośrednio w otrzymanej liście po elemencie T[i]. Na przyk lad tablice T i NEXT podane w poniższej tabelce: reprezentuj a listȩ i T[i] # NEXT[i] NULL Wartość T[0] jest niewykorzystywana, a NEXT[0] przechowuje indeks g lowy listy. Dziȩki temu, ponieważ pod indeksem 0 nie jest przechowywana żadna wartość (st ad #), można użyć 0 jako NULL, tzn. NEXT[i]==0 oznacza że T[i] jest ostatnim elementem listy. Aby usun ać z listy element nastȩpuj acy po T[i] wystarczy wykonać NEXT[i]=NEXT[NEXT[i]]; Nastȩpuj acy kod wstawia element T[j] za elementem T[i]: NEXT[j]=NEXT[i]; NEXT[i]=j; 3 Sortowanie list przez scalanie Dana jest lista L do posortowania i rozmiar listy poniżej którego powinno siȩ stosować inny algorytm: 1. Podziel listȩ na dwie po lowy. Otrzymujemy dwie listy L1,L2. 2. Jeśli rozmiar L1 jest mniejszy od podanego to sortuj inn a metod a (tutaj: przez wybór). W przeciwnym wypadku sortuj L1 przez scalanie. 3. Jeśli rozmiar L2 jest mniejszy od podanego to sortuj inn a metod a (tutaj: przez wybór). W przeciwnym wypadku sortuj L2 przez scalanie. 4. Scal L1 i L2. Scalanie L1 i L2 do listy L: 2
3 1. Pocz atkowo L jest pusta. 2. Powtarzaj 3-6 dopóki L1 lub L2 jest niepusty. 3. Jeśli L1 pusty to k = 2,w przeciwnym przypadku jeśli L2 pusty lub g lowa(l1) g lowa(l2) to k = 1, a jeśli g lowa(l2) < g lowa(l1) to k = x = wartość w g lowie(lk) 5. Usuń pierwszy element z Lk. 6. Wstaw x na końcu L. Innymi s lowy sortowanie przez scalanie można zilustrować na przyk ladzie sortowania talii kart wed lug wartości: 1. Podziel taliȩ na dwa stosy. 2. Posortuj każdy ze stosów. 3. Po l acz oba stosy, wybieraj ac za każdym razem mniejsz a z kart leż acych na szczytach obu stosów. 4 Sortowanie list przez wybór Dana jest lista L do posortowania, listȩ wynikow a oznaczmy L. 1. List L jest pusta. 2. Znajdź najmniejszy element x w liście L. 3. Usuń x z L. 4. Wstaw x na koniec L. 5. Powtarzaj 2-4 dopóki lista L jest niepusta. 5 Pe lne drzewa binarne Dowolna sekwencja liczb od 1 do n ma naturaln a strukturȩ pe lnego drzewa binarnego. Pe lne drzewo binarne to drzewo binarne w którym wszystkie poziomy (za wyj atkiem być może ostatniego) s a wype lnione. Ostatnia warstwa w drzewie nie musi być pe lna, ale nie może mieć dziur: innymi s lowy jeśli w ostatniej warstwie pojawia siȩ NULL to musi być NULL do końca. Rys. 1 i 2 powinny wyjaśnić niejasności. 3
4 Rys.1 Przyk lad pe lnego drzewa binarnego Rys.2 To nie jest pe lne drzewo binarne. Oczywiście ponumerować można wȩz ly każdego drzewa. Rzecz w tym że w przypadku pe lnego drzewa binarnego, dla wȩz la nr i numery wȩz lów jego rodzica i prawego i lewego dziecka (jeśli istniej a) można otrzymać przy pomocy bardzo prostych wzorów: PARENT(i) = i/2, LEFT(i) = 2i, RIGHT(i) = 2i + 1. (1) Wzory te okaż a sie potrzebne w tym zadaniu ponieważ nasz program bȩdzie rozwidla l siȩ rekurencyjnie tworz ac pe lne drzewo binarne (każdy wȩze l to proces) a do każdego procesu poza korzeniem przypisany bȩdzie semafor. Podobnie do każdego procesu poza procesami z najniższego rzȩdu przypisany bȩdzie typ komunikatu. Zarówno typ komunikatu jak i nr semafora w tablicy to kolejne liczby i bȩdziemy stosować wzory (1) do przypisania semafora i rodzaju komunikatu do procesu. 6 Rozwidlanie i synchronizacja Pocz atkowo kolejność elementów w liście do posortowania pokrywa siȩ z kolejności a elementów w tablicy T, tzn. NEXT[i]=i+1. Jeśli rozmiar tablicy do posortowania wynosi N to proces g lówny rozdziela pocz atkow a listȩ elementów na po lowȩ, wykonuj ac instrukcjȩ NEXT[N/2]=0; 4
5 Mamy teraz dwie listy w podtablicach T[1..N/2] i T[N/2+1..N]. Program g lówny rozwidla siȩ dwukrotnie, a jego dzieci sortuj a podtablice odpowiednio T[1..N/2] i T[N/2+1..N]. Dzieci rozwidlaj a siȩ dalej rekurencyjnie. Rozwidlanie kończy to pokolenie które otrzymuje do posortowania tablicȩ o wymiarze mniejszym od ustalonego wymiaru MIN SIZE. Proces który otrzyma do postortowania podtablicȩ o wymiarze mniejszym od MIN SIZE wykonuje sortowanie przez wstawianie bez dalszego rozwidlania siȩ. Proces który rozwidli l siȩ scala listy posortowane przez jego dzieci. W tym celu dzieci przesy laj a przy pomocy kolejki komunikatów indeksy elementów które stan a siȩ g lowami posortowanych podlist. Pocz atkowo g low a podlisty by l pierwszy element podtablicy, ale o ile nie by l on elementem najmniejszym, po posortowaniu bȩdzie to jakiś inny element. Należy zwrócić uwagȩ na fakt że oba algorytmy: sortowania przez scalanie i przez wybór, buduj a posortowan a listȩ w taki spoób że kolejny element do l aczany jest do wynikowej listy zawsze na końcu i nie zmienia potem swojej pozycji. Z kolei algorytm scalania potrzebuje w każdym kroku tylko pocz atkowych elementów scalanych podlist. St ad jeśli procesy sortuj ace bȩd a sygnalizow ly swoim rodzicom umieszczenie na w laściwym miejscu kolejnego elementu sortowanej podlisty, proces rodzic bȩdzie móg l wykonać scalenie kolejnego elementu bez czekania na zakończenie procesu dzieci. Przypomina to problem producenta i konsumenta. Szczegó ly powinny zostać wyjaśnione przez przyk lad na Rys. 3 i 4. P 2 S T [1..25] T [26..50] P 1 S T [1..50] T [ ] P 3 S T [51..75] T [ ] P 4 S T [1..12] T [13..25] P 5 S T [26..37] T [38..50] P 6 S T [51..62] T [63..75] P 7 S T [76..87] T [ ] P 8 W (T [1..12]) P 9 W (T [13..25]) P 10 W (T [26..37]) P 11 W (T [38..50]) P 12 W (T [51..62]) P 13 W (T [63..75]) P 14 W (T [76..87]) P 15 W (T [ ]) Rys.3 Przyk lad rozwidlenia na procesy sortuj ace gdy ilość elementów do posortowania wynosi N = 100 a rozmiar MIN SIZE poniżej którego stosuje siȩ sortowanie przez wybór to 20. S oznacza scalanie podanych podtablic, W sortowanie podtablicy przez wybór. 5
6 Semafory Typy komuniktów Z każdym procesem poza P 1 zwi azane Z procesami P 1,..., P 7, tzn. z s a semafory S 0,..., S 13, i.e z procesem każdym procesem wykonuj acym sortowanie P i zwi azany jest semafor S i 2. Proces przez scalanie, zwi azany jest P i sygnalizuje semafor S i 2 gdy typ komunikatu. Typem komunikatu umieści na w laściwym miejscu element zwi azanego z procesem P i jest i. sortowanej przez siebie podlisty. Z kolei Używana jest pojedyńcza kolejka komunikatów proces P i jeśli wykonuje sortowanie ipc. Proces P i wysy la do przez scalanie czeka pod semaforami S LEFT(i) 2 lub S RIGHT(i) 2 przed scaleniem kolejki komunikat typu PARENT(i) z informacj a o indeksie g lowy sortowanej kolejnych elementów z list sortowanych przez niego podtablicy, i.e. o indeksie przez procesy P LEFT(i) i P RIGHT(i). najmniejszego elementu w podtabl- icy. Proces PARENT(i) odbiera komunikaty od swoich dzieci, dziȩki czemu może rozpocz ać scalanie. Rys.4 Semafory i kolejki komunikatów w przyk ladzie z Rys. 3. 6
Strategia "dziel i zwyciężaj"
Strategia "dziel i zwyciężaj" W tej metodzie problem dzielony jest na kilka mniejszych podproblemów podobnych do początkowego problemu. Problemy te rozwiązywane są rekurencyjnie, a następnie rozwiązania
Bardziej szczegółowoSortowanie. LABORKA Piotr Ciskowski
Sortowanie LABORKA Piotr Ciskowski main Zaimplementuj metody sortowania przedstawione w następnych zadaniach Dla każdej metody osobna funkcja Nagłówek funkcji wg uznania ale wszystkie razem powinny być
Bardziej szczegółowoKolejka 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ółowoRekurencja. Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)!
Rekurencja Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)! Pseudokod: silnia(n): jeżeli n == 0 silnia = 1 w przeciwnym
Bardziej szczegółowoNiesimpleksowe metody rozwia zywania zadań PL. Seminarium Szkoleniowe Edyta Mrówka
Niesimpleksowe metody rozwia zywania zadań PL Seminarium Szkoleniowe Metoda Simplex: wady i zalety Algorytm SIMPLEX jest szeroko znany i stosowany do rozwi azywania zadań programowania liniowego w praktyce.
Bardziej szczegółowoGeometria odwzorowań inżynierskich perspektywa wnȩtrza 06C
Scriptiones Geometrica Volumen I (2014), No. 6C, 1 8. Geometria odwzorowań inżynierskich perspektywa wnȩtrza 06C Edwin Koźniewski Zak lad Informacji Przestrzennej 1. Perspektywa czo lowa wnȩtrza Rys. 6C-01:
Bardziej szczegółowoTypy danych. 2. Dane liczbowe 2.1. Liczby całkowite ze znakiem i bez znaku: 32768, -165, ; 2.2. Liczby rzeczywiste stało i zmienno pozycyjne:
Strona 1 z 17 Typy danych 1. Dane tekstowe rozmaite słowa zapisane w różnych alfabetach: Rozwój metod badawczych pozwala na przesunięcie granicy poznawania otaczającego coraz dalej w głąb materii: 2. Dane
Bardziej szczegółowoAnaliza 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ółowoProgramowanie w VB Proste algorytmy sortowania
Programowanie w VB Proste algorytmy sortowania Sortowanie bąbelkowe Algorytm sortowania bąbelkowego polega na porównywaniu par elementów leżących obok siebie i, jeśli jest to potrzebne, zmienianiu ich
Bardziej szczegółowoPrzyk ladowe Kolokwium z Algorytmów i Struktur Danych (Zad. obu kolokwiach)
Dr hab. Andreas Zastrow, Prof. UG Sem. Zim. 2017/18 Przyk ladowe Kolokwium z Algorytmów i Struktur Danych (Zad. obu kolokwiach) Dla wszystkich zadań: Proszȩ uzasadnić wszystkie odpowiedzi. Proszȩ albo
Bardziej szczegółowoWykł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ółowoINFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227
INFORMATYKA W SZKOLE Dr inż. Grażyna KRUPIŃSKA grazyna@fis.agh.edu.pl D-10 pokój 227 Podyplomowe Studia Pedagogiczne Sortowanie Dane wejściowe : trzy liczby w dowolnym porządku Dane wyjściowe: trzy liczby
Bardziej szczegółowoLaboratorium nr 7 Sortowanie
Laboratorium nr 7 Sortowanie 1. Sortowanie bąbelkowe (BbS) 2. Sortowanie przez wstawianie (IS) 3. Sortowanie przez wybieranie (SS) Materiały Wyróżniamy następujące metody sortowania: 1. Przez prostą zamianę
Bardziej szczegółowoSortowanie danych. Jolanta Bachan. Podstawy programowania
Sortowanie danych Podstawy programowania 2013-06-06 Sortowanie przez wybieranie 9 9 9 9 9 9 10 7 7 7 7 7 10 9 1 3 3 4 10 7 7 10 10 10 10 4 4 4 4 4 4 3 3 3 3 2 2 2 2 2 2 2 3 1 1 1 1 1 1 Gurbiel et al. 2000
Bardziej szczegółowoMetoda Simplex bez użycia tabel simplex 29 kwietnia 2010
R. Rȩbowski 1 WPROWADZENIE Metoda Simplex bez użycia tabel simplex 29 kwietnia 2010 1 Wprowadzenie Powszechnie uważa siȩ, że metoda simplex, jako uniwersalny algorytm pozwalaj acyznaleźć rozwi azanie optymalne
Bardziej szczegółowoWstęp do programowania
Wstęp do programowania Algorytmy na tablicach Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) WP w. III Jesień 2013 1 / 23 Dwadzieścia pytań Zasady 1 Osoba 1 wymyśla hasło z ustalonej
Bardziej szczegółowoMatematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku
Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku Rozdział 1 Struktury danych 1.1 Listy, stosy i kolejki Lista to uporz adkowany ci ag elementów. Przykładami list s a wektory lub tablice
Bardziej szczegółowoNiech X bȩdzie dowolnym zbiorem. Dobry porz adek to relacja P X X (bȩdziemy pisać x y zamiast x, y P ) o w lasnościach:
Teoria miary WPPT IIr semestr zimowy 2009 Wyk lad 4 Liczby kardynalne, indukcja pozaskończona DOBRY PORZA DEK 14/10/09 Niech X bȩdzie dowolnym zbiorem Dobry porz adek to relacja P X X (bȩdziemy pisać x
Bardziej szczegółowoSortowanie przez scalanie
Sortowanie przez scalanie Wykład 2 12 marca 2019 (Wykład 2) Sortowanie przez scalanie 12 marca 2019 1 / 17 Outline 1 Metoda dziel i zwyciężaj 2 Scalanie Niezmiennik pętli - poprawność algorytmu 3 Sortowanie
Bardziej szczegółowoSortowanie zewnętrzne
Algorytmy i struktury danych Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski Sortowanie zewnętrzne 1 Wstęp Bardzo często
Bardziej szczegółowoWykład 5. Sortowanie w czasie liniowologarytmicznym
Wykład 5 Sortowanie w czasie liniowologarytmicznym 1 Sortowanie - zadanie Definicja (dla liczb): wejście: ciąg n liczb A = (a 1, a 2,, a n ) wyjście: permutacja (a 1,, a n ) taka, że a 1 a n 2 Zestawienie
Bardziej szczegółowoRozdzia l 2. Najważniejsze typy algebr stosowane w logice
Rozdzia l 2. Najważniejsze typy algebr stosowane w logice 1. Algebry Boole a Definicja. Kratȩ dystrybutywn a z zerem i jedynk a, w której dla każdego elementu istnieje jego uzupe lnienie nazywamy algebr
Bardziej szczegółowoWstęp do programowania
Wstęp do programowania Stosy, kolejki, drzewa Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. VII Jesień 2013 1 / 25 Listy Lista jest uporządkowanym zbiorem elementów. W Pythonie
Bardziej szczegółowoDrzewa 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ółowoWYŻ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ółowoUniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium Nr 4
Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Algorytmy i struktury danych Laboratorium Nr 4 Algorytmy sortowania zewnętrznego 1 Wstęp Bardzo często przy rozwiązywaniu praktycznych
Bardziej szczegółowoAlgorytmy 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ółowoAlgorytmy 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ółowoJeszcze o algorytmach
Jeszcze o algorytmach Przykłady różnych, podstawowych algorytmów 11.01.2018 M. Rad Plan Powtórka Znajdowanie najmniejszego elementu Segregowanie Poszukiwanie przez połowienie Wstawianie Inne algorytmy
Bardziej szczegółowoStruktury Danych i Złożoność Obliczeniowa
Struktury Danych i Złożoność Obliczeniowa Zajęcia 2 Algorytmy wyszukiwania, sortowania i selekcji Sortowanie bąbelkowe Jedna z prostszych metod sortowania, sortowanie w miejscu? Sortowanie bąbelkowe Pierwsze
Bardziej szczegółowoTablice. Monika Wrzosek (IM UG) Podstawy Programowania 96 / 119
Tablice Tablica to struktura danych, która może przechowywać wiele wartości tego samego typu. Na przykład tablica może zawierać: 10 wartości typu int opisujących liczbę studentów przyjętych na kierunek
Bardziej szczegółowoZASADY 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ółowoAlgorytmy i Struktury Danych.
Algorytmy i Struktury Danych. Metoda Dziel i zwyciężaj. Problem Sortowania, cd. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 2 Bożena Woźna-Szcześniak (AJD) Algorytmy
Bardziej szczegółowoRekurencja. Przykład. Rozważmy ciąg
Rekurencja Definicje rekurencyjne Definicja: Mówimy, iż ciąg jest zdefiniowany rekurencyjnie, jeżeli: (P) Określony jest pewien skończony zbiór wyrazów tego ciągu, zwykle jest to pierwszy wyraz tego ciągu
Bardziej szczegółowoTemat: 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ółowoDefinicja. Ciąg wejściowy: Funkcja uporządkowująca: Sortowanie polega na: a 1, a 2,, a n-1, a n. f(a 1 ) f(a 2 ) f(a n )
SORTOWANIE 1 SORTOWANIE Proces ustawiania zbioru elementów w określonym porządku. Stosuje się w celu ułatwienia późniejszego wyszukiwania elementów sortowanego zbioru. 2 Definicja Ciąg wejściowy: a 1,
Bardziej szczegółowoWykład 1_2 Algorytmy sortowania tablic Sortowanie bąbelkowe
I. Struktury sterujące.bezpośrednie następstwo (A,B-czynności) Wykład _2 Algorytmy sortowania tablic Sortowanie bąbelkowe Elementy języka stosowanego do opisu algorytmu Elementy Poziom koncepcji Poziom
Bardziej szczegółowoMATEMATYKA DYSKRETNA - wyk lad 1 dr inż Krzysztof Bryś. Wprowadzenie
1 MATEMATYKA DYSKRETNA - wyk lad 1 dr inż Krzysztof Bryś Wprowadzenie Istniej a dwa różne kryteria mówi ace, które narzȩdzia matematyczne należy zaliczyć do matematyki dyskretnej. Pierwsze definiuje matematykȩ
Bardziej szczegółowoAlgorytm 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ółowoParadygmaty programowania. Paradygmaty programowania
Paradygmaty programowania Paradygmaty programowania Dr inż. Andrzej Grosser Cz estochowa, 2013 2 Spis treści 1. Zadanie 2 5 1.1. Wprowadzenie.................................. 5 1.2. Wskazówki do zadania..............................
Bardziej szczegółowoAlgorytmy 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ółowoSortowanie. 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ółowoWyk lad 7 Metoda eliminacji Gaussa. Wzory Cramera
Wyk lad 7 Metoda eliminacji Gaussa Wzory Cramera Metoda eliminacji Gaussa Metoda eliminacji Gaussa polega na znalezieniu dla danego uk ladu a x + a 2 x 2 + + a n x n = b a 2 x + a 22 x 2 + + a 2n x n =
Bardziej szczegółowoWstęp do programowania
Wstęp do programowania Algorytmy zachłanne, algoritme Dijkstry Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. XI Jesień 2013 1 / 25 Algorytmy zachłanne Strategia polegająca na
Bardziej szczegółowoStruktury 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ółowo1. Liczby i w zapisie zmiennoprzecinkowym przedstawia się następująco
1. Liczby 3456.0012 i 0.000076235 w zapisie zmiennoprzecinkowym przedstawia się następująco a) 0.34560012 10 4 i 0.76235 10 4 b) 3.4560012 10 3 i 7.6235 10 5 c) 3.4560012 10 3 i 7.6235 10 5 d) po prostu
Bardziej szczegółowoWYKŁAD 9. Algorytmy sortowania elementów zbioru (tablic) Programy: c4_1.c... c4_3.c. Tomasz Zieliński
WYKŁAD 9 Algorytmy sortowania elementów zbioru (tablic) Programy: c4_1.c... c4_3.c Tomasz Zieliński /* Przyklad 4.1 - SORTOWANIE TABLIC - metoda najprostsza */ #include #define ROZMIAR 11 void
Bardziej szczegółowoWYKŁAD 10. Zmienne o złożonej budowie Statyczne i dynamiczne struktury danych: lista, kolejka, stos, drzewo. Programy: c5_1.c, c5_2, c5_3, c5_4, c5_5
WYKŁAD 10 Zmienne o złożonej budowie Statyczne i dynamiczne struktury danych: lista, kolejka, stos, drzewo Programy: c5_1.c, c5_2, c5_3, c5_4, c5_5 Tomasz Zieliński ZMIENNE O ZŁOŻONEJ BUDOWIE (1) Zmienne
Bardziej szczegółowoWyk lad 7: Drzewa decyzyjne dla dużych zbiorów danych
Wyk lad 7: Drzewa decyzyjne dla dużych zbiorów danych Funkcja rekurencyjna buduj drzewo(u, dec, T): 1: if (kryterium stopu(u, dec) = true) then 2: T.etykieta = kategoria(u, dec); 3: return; 4: end if 5:
Bardziej szczegółowoALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH Temat : Drzewa zrównoważone, sortowanie drzewiaste Wykładowca: dr inż. Zbigniew TARAPATA e-mail: Zbigniew.Tarapata@isi.wat.edu.pl http://www.tarapata.strefa.pl/p_algorytmy_i_struktury_danych/
Bardziej szczegółowoPOCHODNA KIERUNKOWA. DEFINICJA Jeśli istnieje granica lim. to granica ta nazywa siȩ pochodn a kierunkow a funkcji f(m) w kierunku osi l i oznaczamy
POCHODNA KIERUNKOWA Pochodne cz astkowe funkcji f(m) = f(x, y, z) wzglȩdem x, wzglȩdem y i wzglȩdem z wyrażaj a prȩdkość zmiany funkcji w kierunku osi wspó lrzȩdnych; np. f x jest prȩdkości a zmiany funkcji
Bardziej szczegółowoPo wprowadzeniu zmiennych uzupe lniaj acych otrzymamy równoważny mu problem w postaci kanonicznej:
ROZDZIA L Metoda sympleksowa Motto: Matematyka nie może wype lnić życia ale jej nieznajomość już niejednemu je wype lni la H Steinhaus Tablica sympleksowa Rozważmy ZPL w postaci klasycznej maksymalizować
Bardziej szczegółowoGeometria odwzorowań inżynierskich rzut środkowy 06A
Scriptiones Geometrica Volumen I (2014), No. 6A, 1 10. Geometria odwzorowań inżynierskich rzut środkowy 06A Edwin Koźniewski Zak lad Informacji Przestrzennej 1. Rzut środkowy i jego niezmienniki Przyjmijmy
Bardziej szczegółowoDynamiczny 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ółowoRekurencje. Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie:
Rekurencje Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie: T(n) = Θ(1) (dla n = 1) T(n) = 2 T(n/2) + Θ(n) (dla n
Bardziej szczegółowoWykład 3. Metoda dziel i zwyciężaj
Wykład 3 Metoda dziel i zwyciężaj 1 Wprowadzenie Technika konstrukcji algorytmów dziel i zwyciężaj. przykładowe problemy: Wypełnianie planszy Poszukiwanie (binarne) Sortowanie (sortowanie przez łączenie
Bardziej szczegółowoTeoretyczne 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ółowoPodstawy 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ółowoGeometria odwzorowań inżynierskich Zadania 01
Scriptiones Geometrica Volumen I (2007), No. Z1, 1 4. Geometria odwzorowań inżynierskich Zadania 01 Edwin Koźniewski Instytut Inżynierii Budowlanej, Politechnika Bia lostocka 1. Twierdzenie o punkcie wȩz
Bardziej szczegółowoGeometria odwzorowań inżynierskich. 1. Perspektywa odbić w zwierciad lach p laskich 06F
Scriptiones Geometrica Volumen I (2014), No. 6F, 1 10. Geometria odwzorowań inżynierskich Perspektywa odbić w zwierciad lach p laskich 06F Edwin Koźniewski Zak lad Informacji Przestrzennej 1. Perspektywa
Bardziej szczegółowoDrzewa 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ółowoRozdzia l 3. Relacje binarne
Rozdzia l 3. Relacje binarne 1. Para uporz adkowana. Produkt kartezjański dwóch zbiorów Dla pary zbiorów {x, y} zachodzi, jak latwo sprawdzić, równość {x, y} = {y, x}. To znaczy, kolejność wymienienia
Bardziej szczegółowoAlgorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne
Algorytmy i struktury danych Wykład VIII Elementarne techniki algorytmiczne Co dziś? Algorytmy zachłanne (greedyalgorithms) 2 Tytułem przypomnienia metoda dziel i zwyciężaj. Problem można podzielić na
Bardziej szczegółowoAlgorytmy 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ółowoRozdzia l 8. Pojȩcie liczby porz adkowej
Rozdzia l 8. Pojȩcie liczby porz adkowej 1. Liczby naturalne a liczby porz adkowe Oto cztery pierwsze liczby naturalne zapisane wed lug różnych czterech notacji w porz adku od najmniejszej do najwiȩkszej:,
Bardziej szczegółowo5040 =
1 Podstawowe Twierdzenie Arytmetyki. Twierdzenie 0.1 Każd a liczbȩ naturaln a można przedstawiċ jako iloczyn liczb pierwszych. Taki rozk lad jest jedyny. Inaczej, jeżeli n jest liczb a naturaln a to istniej
Bardziej szczegółowoSortowanie. 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ółowoAlgorytmy i Struktury Danych, 2. ćwiczenia
Algorytmy i Struktury Danych, 2. ćwiczenia 2017-10-13 Spis treści 1 Optymalne sortowanie 5 ciu elementów 1 2 Sortowanie metodą Shella 2 3 Przesunięcie cykliczne tablicy 3 4 Scalanie w miejscu dla ciągów
Bardziej szczegółowoALGORYTMY 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ółowoRozdzia l 10. Najważniejsze normalne logiki modalne
Rozdzia l 10. Najważniejsze normalne logiki modalne 1. Logiki modalne normalne Definicja. Inwariantny zbiór formu l X jȩzyka modalnego L = (L,,,,, ) nazywamy logik a modaln a zbazowan a na logice klasycznej
Bardziej szczegółowoSterowalność liniowych uk ladów sterowania
Sterowalność liniowych uk ladów sterowania W zadaniach sterowania docelowego należy przeprowadzić obiekt opisywany za pomoc a równania stanu z zadanego stanu pocz atkowego ẋ(t) = f(x(t), u(t), t), t [t,
Bardziej szczegółowoAlgorytmy i złożoności. Wykład 3. Listy jednokierunkowe
Algorytmy i złożoności Wykład 3. Listy jednokierunkowe Wstęp. Lista jednokierunkowa jest strukturą pozwalającą na pamiętanie danych w postaci uporzadkowanej, a także na bardzo szybkie wstawianie i usuwanie
Bardziej szczegółowoNastępnie zdefiniujemy utworzony szkic jako blok, wybieramy zatem jak poniżej
Zadanie 1 Wykorzystanie opcji Blok, Podziel oraz Zmierz Funkcja Blok umożliwia zdefiniowanie dowolnego złożonego elementu rysunkowego jako nowy blok a następnie wykorzystanie go wielokrotnie w tworzonym
Bardziej szczegółowoPodstawowe 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ółowoPodstawowe 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ółowoAlgorytmy 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ółowoStruktury Danych i Złożoność Obliczeniowa
Struktury Danych i Złożoność Obliczeniowa Zajęcia 1 Podstawowe struktury danych Tablica Najprostsza metoda przechowywania serii danych, zalety: prostota, wady: musimy wiedzieć, ile elementów chcemy przechowywać
Bardziej szczegółowoEfektywna metoda sortowania sortowanie przez scalanie
Efektywna metoda sortowania sortowanie przez scalanie Rekurencja Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Metoda dziel i zwycięŝaj Dzielimy
Bardziej szczegółowo176 Wstȩp do statystyki matematycznej = 0, 346. uczelni zdaje wszystkie egzaminy w pierwszym terminie.
176 Wtȩp do tatytyki matematycznej trści wynika że H o : p 1 przeciwko hipotezie H 3 1: p< 1. Aby zweryfikować tȩ 3 hipotezȩ zatujemy tet dla frekwencji. Wtedy z ob 45 1 150 3 1 3 2 3 150 0 346. Tymczaem
Bardziej szczegółowoMatematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku
Matematyka Dyskretna Andrzej Szepietowski 25 czerwca 2002 roku Rozdział 1 Rekurencja 11 Wieże Hanoi Rekurencja jest to zdolność podprogramu (procedury lub funkcji) do wywoływania samego siebie Zacznijmy
Bardziej szczegółowoUniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania
Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania Celem ćwiczenia jest zapoznanie studentów z najprostszą dynamiczną strukturą
Bardziej szczegółowo0.1 Sposȯb rozk ladu liczb na czynniki pierwsze
1 Temat 5: Liczby pierwsze Zacznijmy od definicji liczb pierwszych Definition 0.1 Liczbȩ naturaln a p > 1 nazywamy liczb a pierwsz a, jeżeli ma dok ladnie dwa dzielniki, to jest liczbȩ 1 i sam a siebie
Bardziej szczegółowoPython: JPEG. Zadanie. 1. Wczytanie obrazka
Python: JPEG Witajcie! Jest to kolejny z serii tutoriali uczący Pythona, a w przyszłości być może nawet Cythona i Numby Jeśli chcesz nauczyć się nowych, zaawansowanych konstrukcji to spróbuj rozwiązać
Bardziej szczegółowoSystem liczbowy binarny.
1 System liczbowy binarny. 0.1 Wstȩp Ogȯlna forma systemów pozycyjnych liczbowych ma postać wielomianu α n 1 ρ n 1 + α n 2 ρ n 2 + + α 2 ρ 2 + α 1 ρ + α 0, (1) gdzie liczbȩ naturaln a ρ 2 nazywamy podstaw
Bardziej szczegółowoProgramowanie obiektowe
Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04 Cel zajęć. Celem zajęć jest zapoznanie się ze sposobem działania popularnych. Wprowadzenie teoretyczne. Rozważana w ramach niniejszych zajęć
Bardziej szczegółowoListy, 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ółowoGeometria odwzorowań inżynierskich perspektywa boczna wnȩtrza 06E
Scriptiones Geometrica Volumen I (2014), No. 6E, 1 14. Geometria odwzorowań inżynierskich perspektywa boczna wnȩtrza 06E Edwin Koźniewski Zak lad Informacji Przestrzennej 1. Perspektywa boczna wnȩtrza
Bardziej szczegółowoProgramowanie generyczne w C++
Bardzo szablonowa prezentacja Zak lad Metod Obliczeniowych Chemii UJ 1 wrzesnia 2005 1 2 3 4 Co to jest? Przyk lad Zastosowania 5 S lowniczek Plan Programowanie generyczne Polega na mo_zliwosci deniowania
Bardziej szczegółowoLiczba 2, to jest jedyna najmniejsza liczba parzysta i pierwsza. Oś liczbowa. Liczba 1, to nie jest liczba pierwsza
1 SZKO LA PODSTAWOWA HELIANTUS 02-892 WARSZAWA ul. BAŻANCIA 16 3 Liczba 2, to jest jedyna najmniejsza liczba parzysta i pierwsza 2 1 0 1 2 3 x Oś liczbowa. Liczba 1, to nie jest liczba pierwsza MATEMATYKA
Bardziej szczegółowoAlgorytmy równoległe: prezentacja i ocena efektywności prostych algorytmów dla systemów równoległych
Algorytmy równoległe: prezentacja i ocena efektywności prostych algorytmów dla systemów równoległych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2018/19 Problem: znajdowanie
Bardziej szczegółowoWstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 9. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 9 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Zasada dziel i zwyciężaj Przykłady znajdowanie
Bardziej szczegółowoDefinicja 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ółowoLaboratoria nr 1. Sortowanie
Laboratoria nr 1 Sortowanie 1. Sortowanie bąbelkowe (BbS) 2. Sortowanie przez wstawianie (IS) 3. Sortowanie przez wybieranie (SS) 4. Sortowanie przez zliczanie (CS) 5. Sortowanie kubełkowe (BS) 6. Sortowanie
Bardziej szczegółowoTeoria miary WPPT IIr. semestr zimowy 2009 Wyk lady 6 i 7. Mierzalność w sensie Carathéodory ego Miara Lebesgue a na prostej
Teoria miary WPPT IIr. semestr zimowy 2009 Wyk lady 6 i 7. Mierzalność w sensie Carathéodory ego Miara Lebesgue a na prostej 27-28/10/09 ZBIORY MIERZALNE WZGLȨDEM MIARY ZEWNȨTRZNEJ Niech µ bȩdzie miar
Bardziej szczegółowoWykład 6_1 Abstrakcyjne typy danych stos Realizacja tablicowa i za pomocą rekurencyjnych typów danych
Wykład 6_ Abstrakcyjne typy danych stos Realizacja tablicowa i za pomocą rekurencyjnych typów danych Abstrakcyjny typ danych Klient korzystający z abstrakcyjnego typu danych: o ma do dyspozycji jedynie
Bardziej szczegółowoPodstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10.
ZAMIANA LICZB MIĘDZY SYSTEMAMI DWÓJKOWYM I DZIESIĘTNYM Aby zamienić liczbę z systemu dwójkowego (binarnego) na dziesiętny (decymalny) należy najpierw przypomnieć sobie jak są tworzone liczby w ww systemach
Bardziej szczegółowoMatematyka dyskretna Arytmetyka
Matematyka dyskretna Arytmetyka Andrzej Szepietowski 1 System dziesiȩtny Najpowszechniej używanym sposobem przedstawiania liczb naturalnych jest system dziesiȩtny, gdzie na przyk lad zapis: 178 przedstawia
Bardziej szczegółowoLaboratoria nr 1. Sortowanie
Laboratoria nr 1 Sortowanie 1. Sortowanie bąbelkowe (BbS) 2. Sortowanie przez wstawianie (IS) 3. Sortowanie przez wybieranie (SS) 4. Sortowanie przez zliczanie (CS) 5. Sortowanie kubełkowe (BS) 6. Sortowanie
Bardziej szczegółowoEGZAMIN - 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