Sprawozdanie do 5. Projektu z Algorytmów i struktur danych 1

Podobne dokumenty
Porównanie Heap Sort, Counting Sort, Shell Sort, Bubble Sort. Porównanie sortowao: HS, CS, Shs, BS

Przykładowe sprawozdanie. Jan Pustelnik

Analiza algorytmów zadania podstawowe

Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to

AiSD zadanie trzecie

INFORMATYKA SORTOWANIE DANYCH.

Algorytmy i struktury danych

Zadanie projektowe 1: Struktury danych i złożoność obliczeniowa

Struktury Danych i Złożoność Obliczeniowa

Sortowanie - wybrane algorytmy

Terminarz rozgrywek Ekstraklasy w sezonie 2016/2017

Algorytmy i Struktury Danych

Java Collections Framework

Rekurencja. Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)!

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

AKADEMIA GÓRNICZO-HUTNICZA im. Stanisława Staszica w Krakowie. Wydział Geologii, Geofizyki i Ochrony Środowiska. Bazy danych 2

Kompletna dokumentacja kontenera C++ vector w -

Analiza algorytmów zadania podstawowe

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

Parametry systemów klucza publicznego

Wstęp do programowania

Struktury Danych i Złożoność Obliczeniowa

Zasady analizy algorytmów

KOPCE KOLEJKI PRIORYTETOWE - PRZYPOMNIENIE KOPCE WYSOKOŚĆ KOPCA KOPCE I KOLEJKI PRIORYTETOWE PROJEKTOWANIE ALGORYTMÓW I METODY SZTUCZNEJ INTELIGENCJI

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

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

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).

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

Efektywna metoda sortowania sortowanie przez scalanie

Jeśli czas działania algorytmu zależy nie tylko od rozmiaru danych wejściowych i przyjmuje różne wartości dla różnych danych o tym samym rozmiarze,

Sortowanie przez wstawianie Insertion Sort

Matematyczne Podstawy Informatyki

Podziałka liniowa czy logarytmiczna?

Zaawansowane algorytmy i struktury danych

Przetwarzanie równoległe

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

Sortowanie. Bartman Jacek Algorytmy i struktury

Zastosowania drzew binarnych

Badanie złożoności obliczeniowej algorytmów na przykładzie sortowania

Technologie Informacyjne

TP1 - TABELE PRZESTAWNE od A do Z

Algorytmy i struktury danych Sortowanie IS/IO, WIMiIP

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

Po wstawieniu tabeli (i zawsze wtedy, gdy w tabeli jest kursor) pojawia się na wstążce nowa grupa zakładek o nazwie Narzędzia tabel.

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

Michał Kazimierz Kowalczyk rok 1, semestr 2 nr albumu indeksu: Algorytmy i struktury danych. Problem połączeń

PODSTAWY INFORMATYKI wykład 5.

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

Informatyka 1. Złożoność obliczeniowa

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

Algorytmika i pseudoprogramowanie

LABORATORIUM PODSTAW TELEKOMUNIKACJI

Sortowanie zewnętrzne

1. Znajdowanie miejsca zerowego funkcji metodą bisekcji.

Lista liniowa dwukierunkowa

Strategia "dziel i zwyciężaj"

Algorytmy i Struktury Danych. Co dziś? Drzewo decyzyjne. Wykład IV Sortowania cd. Elementarne struktury danych

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami

Wycena nieruchomości za pomocą wyboru wielokryterialnego w warunkach niepewności rozmytej oraz klasycznie: metodą pp i kcś

1. Analiza algorytmów przypomnienie

Projektowanie i Analiza Algorytmów

1. Kalkulator czterech działań. 2. Konwersja ciągu znaków do tablicy.

Filtry. Przemysław Barański. 7 października 2012

Uczenie się pojedynczego neuronu. Jeśli zastosowana zostanie funkcja bipolarna s y: y=-1 gdy z<0 y=1 gdy z>=0. Wówczas: W 1 x 1 + w 2 x 2 + = 0

Jeszcze o algorytmach

Algorytmy i Struktury Danych.

Algorytmy sortujące i wyszukujące

LABORATORIUM TERMODYNAMIKI ĆWICZENIE NR 3 L3-1

Sortowanie danych. Jolanta Bachan. Podstawy programowania

REKURENCJA W JĘZYKU HASKELL. Autor: Walczak Michał

Rozdział 4. Algorytmy sortowania 73 Rozdział 5. Typy i struktury danych 89 Rozdział 6. Derekursywacja i optymalizacja algorytmów 147

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

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu

Rys. 1. Zestawienie rocznych kosztów ogrzewania domów

Czytanie wykresów to ważna umiejętność, jeden wykres zawiera więcej informacji, niż strona tekstu. Dlatego musisz umieć to robić.

PRZETWARZANIE RÓWNOLEGŁE I ROZPROSZONE. Mnożenie macierzy kwadratowych metodą klasyczną oraz blokową z wykorzystaniem OpenMP.

Podstawy Programowania. Złożoność obliczeniowa

Algorytmy i Struktury Danych, 2. ćwiczenia

Materiały dla finalistów

Instrukcja właściwego wykonania wykresów na zajęcia dydaktyczne.

Pamięć wirtualna. Jan Tuziemski Źródło części materiałów: os-book.com

Program szkolenia EXCEL OD PODSTAW POPOŁUDNIOWY (WIECZOROWY)

Zadanie 1: Piętnastka

ANALIZA SPRAWDZIANU SZÓSTOKLASISTY

Modelowanie niezawodności prostych struktur sprzętowych

Algorytm i złożoność obliczeniowa algorytmu

Ćwiczenie 3++ Spektrometria promieniowania gamma z licznikiem półprzewodnikowym Ge(Li) kalibracja energetyczna i wydajnościowa

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

Wydajność, instalacja, wymiary i waga central GOLD

Temat 7. Najlżejsze i najcięższe algorytmy sortowania

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Ć w i c z e n i e 3 : W i z u a l i z a c j a d a n y c h - w y k r e s y S t r o n a 1

Jak utworzyć diagram

1. Arkusz kalkulacyjny (9) Za co lubimy arkusze kalkulacyjne (12) Excel 2013 (12) Podsumowanie (14) 2. Uruchamianie programu (15) Podsumowanie (18)

Wstęp do programowania

Programowanie w VB Proste algorytmy sortowania

Wymagania edukacyjne z informatyki w klasie VIII

Usługi Informatyczne "SZANSA" - Gabriela Ciszyńska-Matuszek ul. Świerkowa 25, Bielsko-Biała

Transkrypt:

Sprawozdanie do 5. Projektu z Algorytmów i struktur danych 1 1. Złożoność obliczeniowa operacji wstawiania i usuwania elementów kolejki dla sterty dwu i trójkierunkowej Powyższy problem badano porównując czas działania programu przy operacjach wstawiania, a następnie usuwania różnej ilości elementów kolejki dla stert dwukierunkowej i trójkierunkowej. Badania zostały przeprowadzone dla ilości elementów od 1 do w każdym przypadku po 1 razy. Otrzymane wyniki przedstawia poniższy wykres. 24 21 trójkierunkowa dwukierunkowa 18 15 12 9 6 2 2 2 2 1

Jednoznacznie okazuje się, że kolejka priorytetowa działa szybciej na stercie dwukierunkowej. Co więcej stosunek ich złożoności dla różnej ilości elementów nie jest stały. Dla liczby 1 elementów kolejka dla sterty trójkierunkowej działa 2 dłużej, a dla 2 elementów już 4 razy wolniej. Badanie zakończono dla liczby elementów wynoszącej tysięcy, dla których to czas działania wyniósł odpowiednio 5,28 i 22,68 sekundy. 2. Porównanie wydajności algorytmów sortujących Badania porównujące czas działania algorytmów przeprowadzono dla poniższych sortowań : sortowanie przez kopcowanie dla kolejki priorytetowej bazującej na stercie dwukierunkowej (SortHeap2) oraz kolejki priorytetowej bazującej na stercie trójkierunkowej (SortHeap), sortowanie przez kopcowanie dla bezpośredniego ukopcowania w stertę dwukierunkową () oraz dla bezpośredniego ukopcowania w stertę trójkierunkową (), sortowania szybkiego (), sortowania przez scalenie (), sortowania metodą Shell a (), sortowania grzebieniowego o współczynniku 1, () Badania zostały przeprowadzone dla tablic o ilości elementów od 1 do w każdym przypadku po 1 razy. Wszystkie sortowania przeprowadzanie były dla identycznych, losowych tablic. Otrzymane wyniki przedstawiają poniższe wykresy. 2

27 24 21 18 15 12 9 6 SortHeap2 SortHeap 2 2 2 2 Oto ten sam wykres z czasem w skali logarytmicznej : 1 1 1,1,1 SortHeap2 SortHeap,1 2 2 2 2

Okazuje się, że wykres ze zwykłą skalą jest całkowicie nieczytelny, gdyż czas sortowania przez kopcowanie dla kolejki priorytetowej bazującej na stertach jest nieporównywalnie większy od pozostałych sortowań. Przykładowo, dla wielkości tablicy trwa ono około 6 (dla sterty dwukierunkowej) oraz (dla trójkierunkowej) sekund. Natomiast średni czas działania pozostałych sortowań dla tych samych tablic zawiera się w przedziale 1 46 milisekund. Wykres ze skalą logarytmiczną uzmysławia nam tą ogromną różnicę wydajnościową. Aby porównać wydajność pozostałych sortowań z wykresu usunięto sortowania SortHeap.,5,45,4,5,,25,2,15,1,5 2 2 2 2 4

Okazuje się, że najdłużej działa algorytm, natomiast najkrócej. Wolniejsze od niego są sortowania grzebieniowe oraz metodą Shell a, natomiast sortowania bezpośredniego ukopcowania są jedynie trochę wolniejsze. Zaznaczyć tutaj trzeba, że powyższe sortowanie przez kopcowanie wydajniej działa dla sterty trójkierunkowej niż dla sterty dwukierunkowej. Powyższe badanie przeprowadzono jeszcze dla większych tablic tj. dla ilości elementów od 1 do 5. Wyniki prezentuje wykres. 1,1 1,,9,8,7,6,5,4,,2,1, 4 16 22 2 28 4 4 4 46 4 Okazuje się, iż dla większych tablic sortowanie grzebieniowe spowalnia i ma podobną wydajność co sortowanie przez scalenie. Najszybszym algorytmem okazuje się znowu. Również w tym przypadku sortowanie przez kopcowanie działa szybciej dla sterty trójkierunkowej niż dla sterty dwukierunkowej. 5