Algoritmi in podatkovne strukture 1 Visokošolski strokovni študij Računalništvo in informatika

Podobni dokumenti
APS1

Microsoft PowerPoint - OAPS1- P12.ppt

Microsoft PowerPoint - OAPS1- Uvod.ppt

Datum in kraj

PRIPOROČILA ZA OBLIKOVANJE KATALOGOV ZNANJA ZA MODULE V PROGRAMIH VIŠJEGA STROKOVNEGA IZOBRAŽEVANJA

Diapozitiv 1

Podatkovni model ER

Teorija kodiranja in kriptografija 2013/ AES

Microsoft Word - Analiza rezultatov NPZ matematika 2018.docx

Diapozitiv 1

Microsoft PowerPoint - Sequi_SecDAy.ppt

Učinkovita izvedba algoritma Goldberg-Tarjan Teja Peklaj 26. februar Definicije Definicija 1 Naj bo (G, u, s, t) omrežje, f : E(G) R, za katero v

Delavnica Načrtovanje digitalnih vezij

Microsoft Word - M docx

ARS1

Urejevalna razdalja Avtorji: Nino Cajnkar, Gregor Kikelj Mentorica: Anja Petković 1 Motivacija Tajnica v posadki MARS - a je pridna delavka, ampak se

Šolski center Celje Srednja šola za kemijo, elektrotehniko in računalništvo ELEKTRONSKA REDOVALNICA RAZISKOVALNA NALOGA AVTORJI Aleš Budna Jure Ulaga

APS1

Nameščanje Adopt Open Java Development Kit 8

Vprašanja za 2. izpitno enoto poklicne mature Strokovni predmet NPA Vprašanja Visual C# (4. letnik) 1. Uporabniški vmesnik razvojnega okolja Visual C#

Microsoft Word - avd_vaje_ars1_1.doc

Microsoft PowerPoint - Java_spremenljivke

Microsoft Exchange 2013

Nameščanje Adopt Open Java Development Kit 8

C:/Users/Matevž Èrepnjak/Dropbox/FKKT/TESTI-IZPITI-REZULTATI/ /Izpiti/FKKT-avgust-17.dvi

Elektronska pošta

C:/Users/Matevž Èrepnjak/Dropbox/FKKT/testi in izpiti/ /IZPITI/FKKT-februar-14.dvi

Chapter 1

Microsoft PowerPoint - Java-rekurzija.ppt

Diapozitiv 1

NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: Faks.: in

Macoma katalog copy

Navodila za uporabo Mini snemalnik

predstavitev fakultete za matematiko 2017 A

Layout 1

PowerPointova predstavitev

Microsoft Word - M docx

1

Microsoft Word - M _mod..docx

5 SIMPLICIALNI KOMPLEKSI Definicija 5.1 Vektorji r 0,..., r k v R n so afino neodvisni, če so vektorji r 1 r 0, r 2 r 0,..., r k r 0 linearno neodvisn

Objektno usmerjeno programiranje

Delavnica Načrtovanje digitalnih vezij

Športno društvo Jesenice, Ledarska 4, 4270 Jesenice, Tel.: (04) , Fax: (04) , Drsalni klub Jesenice in Zv

Slide 1

Osnove matematicne analize 2018/19

1. IDENTIFIKACIJA PODATKOVNEGA NIZA 1.1 Naslov Strukturno-tektonska karta Slovenije 1: Alternativni naslov Strukturno-tektonska karta Slove

DKMPT

'Kombinatoricna optimizacija / Lokalna optimizacija'

Vaja 2 Virtualizacija fizičnih strežnikov in virtualni PC A. Strežnik Vmware ESX Namestitev strežnika VMware ESX 3.5 na fizični strežnik 2. Nas

SESTAVA VSEBINE MATEMATIKE V 6

Osnove verjetnosti in statistika

Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna str

Excel 2016

LAMP, MEAN, ANNE – kaj izbrati za razvoj spletne aplikacije?

Slide 1

Microsoft PowerPoint - Mocnik.pptx

Novi SEAT Tarraco.

PowerPointova predstavitev

6.1 Uvod 6 Igra Chomp Marko Repše, Chomp je nepristranska igra dveh igralcev s popolno informacijo na dvo (ali vec) dimenzionalnem prostoru

VAJE RID 1 (4), program PTI, šol

SEAT Tarraco.

4.Racionalna števila Ulomek je zapis oblike. Sestavljen je iz števila a (a ), ki ga imenujemo števec, in iz števila b (b, b 0), ki ga imenujemo imenov

Microsoft PowerPoint - PIS_2005_03_02.ppt

Upravljanje sistema COBISS Navodila za uporabo tiskalnika CITIZEN S310II V1.0 VIF-NA-27-SI

Document ID / Revision : 0519/1.3 ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov

Navodila za uporabo programske opreme OTRS verzija Administracijska navodila Avtor navodil: Sebastijan Šilec Datum: December 2007 Center odprte

Microsoft Word - Seštevamo stotice.doc

Analiza vpliva materiala, maziva in aktuatorja na dinamiko pnevmatičnega ventila

Microsoft PowerPoint - Objekti_gradnja.ppt

Uradni list RS - 12(71)/2005, Mednarodne pogodbe

SEAT Ateca.

UNIVERZA V LJUBLJANI FAKULTETA ZA MATEMATIKO IN FIZIKO Katja Ciglar Analiza občutljivosti v Excel-u Seminarska naloga pri predmetu Optimizacija v fina

REŠITVE Inteligentna ventilska tehnologija na enem mestu SMART IN FLOW CONTROL.

Anže Martinčič VPLIV MOBILNIH APLIKACIJ ZA SAMOPOMOČ NA POSAMEZNIKA TER RAZVOJ TOVRSTNE APLIKACIJE Diplomsko delo Maribor, 2016

Navodila za nastavitev mail odjemalca na ios in Android napravah TELEFONI iphone (ios 12) Predlagamo, da do svoje študentske e-pošte dostopate s pomoč

Slide 1

PowerPointova predstavitev

101353_-an-01-sl-_vbodni_termometer

EndNote Basic Online navodila za uporabo Vsebina 1 Kaj je EndNote Online? Dostop in prijava Ustvarjanje računa Uporaba

REŠEVANJE DIFERENCIALNIH ENAČB Z MEHANSKIMI RAČUNSKIMI STROJI Pino Koc Seminar za učitelje matematike FMF, Ljubljana, 25. september 2015 Vir: [1] 1

Slajd 1

Identifikacija TIMSS 2011 Vprašalnik za učiteljice in učitelje Matematika 8. razred Pedagoški inštitut Center za uporabno epistemologijo Gerbičeva 62

ŠKODA SUPERB INFORMATIVNI CENIK ZA MODELSKO LETO 2020 Cene Motorne različice Serijska oprema

Poslovilno predavanje

NETGEAR R6100 WiFi Router Installation Guide

VSEBINSKI NASLOV SEMINARSKE NALOGE

Diplomska naloga: Prototip informacijskega sistema za shranjevanje računov v digitalni obliki

Uporaba informacijsko komunikacijske tehnologije v naravoslovju in tehniki

3.indd

UPS naprave Socomec Netys PL (Plug in) UPS naprava Socomec Netys PL moč: 600VA/360W; tehnologija: off-line delovanje; vhod: 1-fazni šuko 230VAC; izhod

Presentation Name / Author

Microsoft Word - CNC obdelava kazalo vsebine.doc

Vrste

RAČUNALNIŠKI PRAKTIKUM d o c. d r. A N D R E J T A R A N E N K O Kdo bo z vami? Predavatelj: dr. Andrej Taranenko

Sestavljanje in re\unhbox \bgroup \let \unhbox \setbox \hbox {s\global \mathchardef \spacefactor }\ac

Microsoft Word - vaje2_ora.doc

Protokoli v računalniškem komuniciranju TCP, IP, nivojski model, paket informacij.

Orodje za izvoz podatkov

Prekinitveni način delovanja PLK Glavni program (OB1; MAIN) se izvaja ciklično Prekinitev začasno ustavi izvajanje glavnega programa in zažene izvajan

Spoznajmo PowerPoint 2013

Transkripcija:

Algoritmi in podatkovne strukture 1 Visokošolski strokovni študij Računalništvo in informatika Abstraktni podatkovni tipi Jurij Mihelič, UniLj, FRI

Podatkovni tipi Razvil Pascal, Oberon itd. Software is getting slower more rapidly than hardware becomes faster. Niklaus Wirth, 1943 - Algorithms + Data Structures = Programs Razvil jezik Scala,, generike v javi. Martin Odersky, 1958 Podatki so temelmj vssakelgaa progarama

Podatkovni tipi Primer: števila cela števila dvojiški komplement decimalna števila operacije +, -, *, /, % Java izvedbe: byte, short, int, long operacije: +, -, *, / Java izvedbe: float, double IEEE 745 standard Katerel vsreldnost zaselda bytee shorte loate?

Podatkovni tipi Podatkovni tip model za podatke podatek ima ali pripada nekemu tipu pove način uporabe nekega podatka Opis podatkovnega tipa množica vrednosti množica operacij predstavitev podatka razvijalski pogled na podatke

Podatkovni tipi Abstraktni podatkovni tip (ADT abstract data type) množica vrednosti množica operacij brez implementacije oz. predstavitve podatkov uporabniški pogled na podatke analogija iz OOP: vmesnik in razred algebrski pogled na ADT matematična definicija obnašanja tipa podobno algebrskim strukturam (vrednosti, operacije)

Podatkovni tipi Objektni opis podatkovna struktura je prejemnik metode ADT s s.operacija(x) Klasični opis podatkovna struktura podana kot argument ADT s operacija(s, x)

Podatkovni tipi Enostavni podatkovni tipi tudi primitivni, atomični, ipd primeri cela števila, števila s plavajočo vejico, znaki Sestavljeni podatkovni tipi sestavljeni iz drugih tipov primeri zajemajo njihovo predstavitev (struct) zajemajo njihovo obnašanje (class) kompleksna števila, nizi, zaporedja, strukture, razredi

Podatkovni tipi Podatkovna struktura sestavljen podatkovni tip omogoča učinkovito uporabo podatkov iskanje, dostop, spreminjanje podatkov vključuje predstavitev oz. organizacijo podatkov

Podatkovni tipi Osnovni tipi množica vreča sklad vrsta vrsta z dvema koncema vrsta s prednostjo zaporedje slovar

Množica Množica (set) matematično gledano: končna množica vsebuje enolične elemente brez vrstnega reda Vreča (bag, multiset) Set/Bag find(x) add(x) remove(x) kot množica dovoljuje ponavljanje elementov Urejena množica/vreča vsebuje še operaciji min() in max()

Sklad Sklad (stack) LIFO last-in, first-out vrh sklada operaciji push in pop Stack push(x) pop() isempty() top() push top pop

Vrsta Vrsta (queue) FIFO first-in, first-out sprednji in zadnji konec vrste operaciji enqueue in dequeue Queue enqueue(x) dequeue() isempty() front() enqueue dequeue front back

Vrsta z dvema koncema dvsrsta? Vrsta z dvema koncema (deque ali dequeue) dodajanje in odvzemanje spredaj in zadaj Deque enqueue(x) = enqueueback(x) dequeue dequeue() = dequeuefront() enqueuefront(x) dequeueback() enqueuefront isempty() front() back() enqueue front back dequeueback

Vrsta s prednostjo Vrsta s prednostjo (priority queue) odvzemanje spredaj dodajanje s prednostjo enqueue dequeue PriorityQueue enqueue(p, x) dequeue() front() front

Zaporedje Zaporedje (sequence) naključni dostop: get(i), set(i, x) vstavljanje na pozicijo: insert(i, x) brisanje na dani poziciji: delete(i) Sequence get(i) set(i, x) insert(i, x) delete(i) 0 1 2 3 4

Slovar Slovar (dictionary, map) podoben množici dostop do elementov preko ključa dostop: get(k), put(k, v) odstranjevanje: remove(k) Map get(k) put(k, v) remove(k)

Collection Pregled ADT isempty() clear() count() find(x) Set/Bag Stack Queue Sequence find(x) add(x) remove(x) push(x) pop() enqueue(x) dequeue() top() front() get(i) set(i, x) insert(i, x) delete(i) SortedSet Map Deque PriorityQueue min() max() get(k) put(k, v) remove(k) enqueuefront(x) dequeueback() enqueue(p, x) dequeue() back() front()

Algebrski pogled Algebrske strukture brez (dvojiške) operacije z eno operacijo + grupoid (magma), semigrupa, monoid, grupa,... z dvema operacijama + in * npr. množica, množica z unarno operacijo polkolobar, kolobar, obseg, algebra več operacij?

Algebrski pogled Nat = types: Nat operations: 0: Nat succ: Nat Nat add: Nat, Nat Nat equations: n, m Nat add(n, 0) = n add(n, succ(m)) = succ(add(n, m))

Algebrski pogled Int = types: Int operations: 0: Int succ: Int Int pred: Int Int add: Int, Int Int equations: n, m Int succ(pred(n)) = n pred(succ(n)) = n add(n, 0) = n add(n, succ(m)) = succ(add(n, m)) add(n, pred(m)) = pred(add(n, m))

Algebrski pogled Stack = types: Item = Int Nat Stack = Item* {error} operations: empty: Stack push: Item, Stack Stack pop: Stack Stack top: Stack Item equations: pop(push(x, s)) = s top(push(x, s)) = x pop(empty) = empty top(empty) = error

Algebrski pogled Zakaj se sploh truditi z matematiko? ker omogoča izredno jasen in natančen pogled na podatkovne strukture ker omogoča dokaz pravilnosti delovanja Kdaj resnično rabimo pravilnost? preprečevanje katastrof življenjsko kritične aplikacije varnostno kritične aplikacije jedrske elektrarne, avtonomna vožnja bančne aplikacije