#2 Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα

Σχετικά έγγραφα
Εισαγωγή στην Επιστήμη των Υπολογιστών

Βασικές δοµές δεδοµένων. Ορολογία λιστών. 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας

ιαφάνειες παρουσίασης #11

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Βασικές Έννοιες Δοµών Δεδοµένων

ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων

Απλές Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες απλές Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλή

ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to

έντρα ομές εδομένων 3ο εξάμηνο ιδάσκων: Χρήστος ουλκερίδης ιαφάνειες προσαρμοσμένες από το υλικό της Μαρίας Χαλκίδη

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Insert(K,I,S) Delete(K,S)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Δομές δεδομένων (2) Αλγόριθμοι

Εισαγωγή στην επιστήμη των υπολογιστών. Οργάνωση εδομένων Κεφάλαιο 11ο ομές εδομένων

Σύνοψη Προηγούμενου. Λίστες (Lists) Συνδεδεμένες Λίστες: Εισαγωγή (1/2) Συνδεδεμένες Λίστες. Ορέστης Τελέλης

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Οι λίστες, χάνοντας τα πλεονεκτήματα των πινάκων, λύνουν προβλήματα που παρουσιάζουν οι πίνακες

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΝΕΟ ΚΑΙ ΠΑΛΑΙΟ ΣΥΣΤΗΜΑ

Δομές Δεδομένων (Data Structures)

Επανάληψη για τις Τελικές εξετάσεις

Alternative to Balanced Trees, Comms of the ACM, 33(6), June 1990,

Ουρά Προτεραιότητας: Heap

ΠΛΗ111. Ανοιξη Μάθηµα 7 ο. έντρο. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

#Ενότητα 2 Αλγόριθμοι, Δομές Δεδομένων και Πολυπλοκότητα - Εισαγωγή στον προγραμματισμό με τη γλώσσα Python

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής και Τηλεπικοινωνιών. Παραλληλία. Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

ΠΛΗ111. Ανοιξη Μάθηµα 3 ο. Συνδεδεµένες Λίστες. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

IsEmptyList(L): επιστρέφει true αν L = < >, false

4. Συνδεδεμένες Λίστες

Αλγόριθµοι και Πολυπλοκότητα

Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ-ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΚΑΔΗΜΑΪΚΟ ΕΠΑΛ- ΚΑΝΙΓΓΟΣ 13- ΤΗΛ

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο

Επιµέλεια Θοδωρής Πιερράτος

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον υποδειγματική διδασκαλία Κεφ. 3 Δομές Δεδομένων & αλγόριθμοι

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας

Προγραµµατισµός Ι (ΗΥ120)

Διδάσκων: Παναγιώτης Ανδρέου

ΕΝΟΤΗΤΑ 6 ΛΙΣΤΕΣ ΠΑΡΑΛΕΙΨΗΣ (SKIP LISTS)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων

Οι δομές δεδομένων στοίβα και ουρά

13/5/2015 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ. Δομές Δεδομένων. Ουρές Προτεραιότητας

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

ΣΗΜΕΙΩΣΕΙΣ ΘΕΩΡΙΑΣ ΚΕΦΑΛΑΙΟ 3 ΠΡΟΣΘΗΚΗ

Δημιουργία Δυαδικών Δέντρων Αναζήτησης

Διδάσκων: Κωνσταντίνος Κώστα

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Οντοκεντρικός Προγραμματισμός

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ

Ευρετήρια. Ευρετήρια. Βάσεις Δεδομένων : Ευρετήρια 1

Δομές Δεδομένων & Αλγόριθμοι

Διδάσκων: Παναγιώτης Ανδρέου

Παράλληλη Επεξεργασία Κεφάλαιο 2 Παραλληλισμός Δεδομένων

Πληροφορική 2. Δομές δεδομένων και αρχείων


ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

Τα δεδοµένα συνήθως αποθηκεύονται σε αρχεία στο δίσκο Για να επεξεργαστούµε τα δεδοµένα θα πρέπει αυτά να βρίσκονται στη

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ

Συλλογές, Στοίβες και Ουρές

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές

Το εσωτερικό ενός Σ Β

ιδάσκων: ηµήτρης Ζεϊναλιπούρ

ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ

διεύθυνση πρώτου στοιχείου διεύθυνση i-οστού στοιχείου T t[n]; &t[0] είναι t &t[i] είναι t + i*sizeof(t)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών

JDSL Java Data Structures Library

ιαφάνειες παρουσίασης #5 (β)

Θεωρητικό Μέρος. int rec(int n) { int n1, n2; if (n <= 5) then return n; else { n1 = rec(n-5); n2 = rec(n-3); return (n1+n2); } }

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

Ευρετήρια. Ευρετήρια. Βάσεις Δεδομένων : Ευρετήρια 1

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

Αλγόριθµοι και Πολυπλοκότητα

Δομές Δεδομένων και Αλγόριθμοι

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

ΑΛΓΟΡΙΘΜΟΙ ΜΕ C. ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής. CMOR Lab. Computational Methodologies and Operations Research

Ουρά Προτεραιότητας: Heap

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record)

8.6 Κλάσεις και αντικείμενα 8.7 Δείκτες σε γλώσσα μηχανής

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Ενότητα 7 Ουρές Προτεραιότητας

ιαφάνειες παρουσίασης #10 (β)

Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα

Εντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 1 read(x) 122 x= 2 read(a,b,c) a= b= c= 3 read(d,e)

Διάλεξη 26: Σωροί. Διδάσκων: Παναγιώτης Ανδρέου

Transcript:

#2 Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα ηµήτρης Ν. Σερπάνος Εργαστήριο Συστηµάτων Υπολογιστών Τµήµα Ηλεκτρολόγων Μηχ. & Τεχνολογίας Υπολογιστών

Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα Αλγόριθµοι: µέθοδοι επίλυσης κάποιου προβλήµατος Περιγραφή σε ψευδο-κώδικα οµές εδοµένων: οργάνωση δεδοµένων, ώστε να αντιµετωπίζονται ως οντότητες Πολυπλοκότητα: προσδιορισµός προβληµάτων που µπορούν να λυθούν 31/10/02 Εισαγωγή στους Υπολογιστές 2

Αλγόριθµοι-Ψευδοκώδικας Βασική αρχή λειτουργίας: σειριακή εκτέλεση απλών λειτουργιών/πράξεων (προσθέσεων, απλών αποφάσεων, ) Παράδειγµα: πρόσθεση 3 αριθµών χρησιµοποιώντας λειτουργία πρόσθεσης 2 αριθµών s=x+y+z s1=x+y, s=s1+z 31/10/02 Εισαγωγή στους Υπολογιστές 3

Αλγόριθµοι-Επιλογή Απόδοση τιµής (x=5) υνατότητα επιλογής τιµής if (ΣΥΝΘΗΚΗ) then ΕΠΙΛΟΓΗ-1 else ΕΠΙΛΟΓΗ-2 Παράδειγµα: f(n)= n όταν n>0, διαφορετικά f(n)= 0 if (n 0) then x=0 else x=n 31/10/02 Εισαγωγή στους Υπολογιστές 4

Αλγόριθµοι-Επανάληψη (1) Σύνθετη εντολή repeat (ΕΝΤΟΛΕΣ) until (ΣΥΝΘΗΚΗ) Υπολογισµός s=1+2+ +n i= 0 s= 0 repeat { s=s+i i=i+1 } until (i>n) 31/10/02 Εισαγωγή στους Υπολογιστές 5

Αλγόριθµοι-Επανάληψη (2) Σύνθετη εντολή while (ΣΥΝΘΗΚΗ) do (ΕΝΤΟΛΕΣ) Υπολογισµός s=1+2+ +n i= 0 s= 0 while (i n) do { s=s+i i=i+1 } 31/10/02 Εισαγωγή στους Υπολογιστές 6

Βασικές οµές εδοµένων Οργανωµένες οµάδες δεδοµένων Πρωτογενείς δοµές δεδοµένων integer, real, complex, characters, boolean Ο τύπος ορίζει το πεδίο ορισµού Παραδείγµατα: integer i i=5 (λάθος: i=5.3) real r r=3.14 char ch1 ch1= a 31/10/02 Εισαγωγή στους Υπολογιστές 7

Βασικές οµές εδοµένων (2) Απλές-µη πρωτογενείς δοµές δεδοµένων Πίνακες (arrays) & συµβολοσειρές (strings) Παραδείγµατα: integer i[100] i[2]=5 Πρώτο στοιχείο i[0] ή i[1] real r[10] r[5]=3.14 char ch1[20] ch1[4]= a 31/10/02 Εισαγωγή στους Υπολογιστές 8

Αρχικοποίηση Πίνακα- Παράδειγµα integer VATHMOI[200] integer i i=0 repeat { VATHMOI[i]=0 i=i+1 } until (i 200) 31/10/02 Εισαγωγή στους Υπολογιστές 9

Παράδειγµα-Συνέχεια integer VATHMOI[200] integer i repeat i=1,200 { VATHMOI[i]=0 } 31/10/02 Εισαγωγή στους Υπολογιστές 10

Άσκηση 1. Να γράψετε σε µορφή ψευδοκώδικα τον αλγόριθµο που υπολογίζει την παρακάτω συνάρτηση µε χρήση REPEAT και WHILE: F(n)= { 0, n 0 Σ i (i+1), n > 0 n i=1 31/10/02 Εισαγωγή στους Υπολογιστές 11

Άσκηση 2. Να περιγραφεί η λειτουργία του αλγορίθµου: ARRAY INTEGER Α(10) INTEGER I, J, X repeat ( I = 2 έως 10 ) J = 10 While ( J >= I ) do { if A(J-1) > A(J) then { X = A(J-1) A(J-1) = A(J) A(J) = X } J= J-1 } 31/10/02 Εισαγωγή στους Υπολογιστές 12

Άσκηση 2β Αν ο πίνακας Α περιέχει τα στοιχεία (5, 3, 2, 1, 4, 6, 7, 8, 0, -1), ποιο θα είναι το περιεχόµενό του µετά την εκτέλεση του αλγορίθµου της άσκησης 2 ; 31/10/02 Εισαγωγή στους Υπολογιστές 13

Συµβολοσειρές (Strings) CHARACTER*30 ONOMA CHAR ONOMA[30] ONOMA= ΙΩΑΝΝΗΣ ΓΕΩΡΓΙΟΥ 31/10/02 Εισαγωγή στους Υπολογιστές 14

Σύνθετες οµές-εγγραφές Εγγραφή (record, structure) Σύνολο ανόµοιων δεδοµένων: structure spoudastis { char onoma[20] char eponimo[20] integer arithmos-mitroou integer vathmos-theoria integer vathmos-ergastirio } 31/10/02 Εισαγωγή στους Υπολογιστές 15

Σύνθετες οµές-εγγραφές (2) structure spoudastis { char onoma[20] char eponimo[20] integer arithmos-mitroou integer vathmos-theoria integer vathmos-ergastirio } ήλωση: spoudastis Τιµές: 31/10/02 Εισαγωγή στους Υπολογιστές 16 s1 s1.onoma= ΗΜΗΤΡΗΣ s1.eponimo= ΣΕΡΠΑΝΟΣ s1.vathmos-ergastirio= 10

Σύνθετες οµές-εγγραφές (3) structure spoudastis { char onoma[20] char eponimo[20] integer arithmos-mitroou integer vathmos-theoria integer vathmos-ergastirio } ήλωση: spoudastis protoeteis[300] Τιµές: protoeteis[0].onoma= ΗΜΗΤΡΗΣ protoeteis[0].eponimo= ΣΕΡΠΑΝΟΣ protoeteis[0].vathmos-ergastirio= 10 protoeteis[1].onoma= ΝΙΚΟΣ protoeteis[1].eponimo= ΑΒΟΥΡΗΣ protoeteis[1].vathmos-ergastirio= 10 31/10/02 Εισαγωγή στους Υπολογιστές 17

υναµικές οµές εδοµένων οµές που καταλαµβάνουν δυναµικά µνήµη, ανάλογα µε τον αριθµό στοιχείων που έχουν κάθε στιγµή λίστες (lists) ουρές (queues) σωροί (stacks) δένδρα (trees) 31/10/02 Εισαγωγή στους Υπολογιστές 18

είκτες (pointers) Μεταβλητές που περιέχουν τη διεύθυνση κάποιας άλλης µεταβλητής Βασικό συστατικό εργαλείο για τη δηµιουργία δυναµικών δοµών δεδοµένων 1001 D1 D2 1 I1 1002 4 I2 31/10/02 Εισαγωγή στους Υπολογιστές 19

Λίστες (lists) οµές που απαρτίζονται από σειρά διατεταγµένων στοιχείων, καθένα από τα οποία εκτός από τα κυρίως δεδοµένα περιέχει έναν δείκτη προς το επόµενο στοιχείο της λίστας δεδοµένα δεδοµένα 31/10/02 Εισαγωγή στους Υπολογιστές 20

Απλά συνδεδεµένες λίστες 1001 1005 1012 1014 1016 1020 1032 σε γνωρίζω από την κόψη του σπαθιού 31/10/02 Εισαγωγή στους Υπολογιστές 21

Λιστες (συνέχεια) ιπλά συνδεδεµένες λίστες Κυκλικές λίστες 31/10/02 Εισαγωγή στους Υπολογιστές 22

Εισαγωγή στοιχείων σε λίστα q p p 31/10/02 Εισαγωγή στους Υπολογιστές 23

ιαγραφή στοιχείων από λίστα p p 31/10/02 Εισαγωγή στους Υπολογιστές 24

Ουρές (queues) First In First Out (FIFO) ΣΤΑΣΗ 31/10/02 Εισαγωγή στους Υπολογιστές 25

Ουρές (queues) υναµικές δοµές στις οποίες το πρώτο στοιχείο που εισάγεται είναι και το πρώτο που θα εξαχθεί (First In First Out) Υλοποίηση µε πίνακες ή λίστες 5 3 6 4 head tail 31/10/02 Εισαγωγή στους Υπολογιστές 26

Ανάκληση στοιχείου από ουρά X= 5 3 6 head head if head=tail then µήνυµα " άδεια ουρά " else { Χ = key(head) if (next(head) = NIL then head= tail else head = next(head) } 31/10/02 Εισαγωγή στους Υπολογιστές 27 4 tail

Σωροί (stacks) υναµικές δοµές στις οποίες το τελευταίο στοιχείο που εισάγεται είναι και το πρώτο που θα εξαχθεί Last in First Out (LIFO) 31/10/02 Εισαγωγή στους Υπολογιστές 28

Σωροί (stacks) Last In First Out Υλοποίηση µε πίνακες ή λίστες 12 20 34 6 5 prev Key top next 31/10/02 Εισαγωγή στους Υπολογιστές 29

Ανάκληση στοιχείου από σωρό 12 20 34 6 5 if top είναι εκτός κάτω ορίου µνήµης top then µήνυµα " underflow " else { Χ = key(top) (επιστροφή του άνω στοιχείου) next = top (ελευθέρωσε το άνω στοιχείο) if prev(top) NIL then top = prev(top) else στείλε µήνυµα "άδειος σωρός" } top next 31/10/02 Εισαγωγή στους Υπολογιστές 30

εντρα (trees) Iεραρχικές δοµές δεδοµένων που θυµίζουν τα οικογενειακά δένδρα Τα στοιχεία του δένδρου λέγονται κόµβοι Ένας κόµβος χωρίς απογόνους λέγεται τερµατικός κόµβος ή φύλλο 31/10/02 Εισαγωγή στους Υπολογιστές 31

εντρα (συνέχεια) Α ρίζα Β Γ Ε Ζ φύλλα Η Θ Ι Κ υαδικά δέντρα, κάθε κόµβος έχει το πολύ δύο «παιδιά» right datum left 31/10/02 Εισαγωγή στους Υπολογιστές 32

Αναζήτηση σε δυαδικό δένδρο TREE-SEARCH (x, k) if x = NIL ή k = datum (x) then (να επιστραφεί η τιµή k = datum (x) ) else if k < datum (x) then TREE-SEARCH ( left (x), k) else TREE-SEARCH (right (x), k) 31/10/02 Εισαγωγή στους Υπολογιστές 33

Αρχεία Χώροι µόνιµης φύλαξης δεδοµένων Τρόποι προσπέλασης Σειριακή προσπέλαση : Απαιτεί µεγάλο χρόνο αναζήτησης Τυχαία προσπέλαση : Απαιτεί την ύπαρξη κλειδίου, αρχείου ευρετηρίου (index file) 31/10/02 Εισαγωγή στους Υπολογιστές 34

Αρχεία (συνέχεια) Συναρτήσεις κατακερµατισµού (hashing functions) Τρόπος άµεσης προσπέλασης Μεγάλη ταχύτητα αναζήτησης Αυξηµένη πολυπλοκότητα υλοποίησης 31/10/02 Εισαγωγή στους Υπολογιστές 35

Άσκηση (Φρ. 2) 1. Έστω ότι έχουµε ένα πίνακα που περιέχει στοιχεία µιας οµάδας σπουδαστών µε τις βαθµολογίες τους στο µάθηµα "Εισαγωγή στην Πληροφορική": Αρ. Μητρώου Επίθετο Όνοµα Βαθµός Να ορίσετε την απαραίτητη εγγραφή TAXH που απαιτείται για την αποθήκευση αυτής της πληροφορίας, να ορίσετε στη συνέχεια έναν πίνακα εγγραφών Pinax(50), στον οποίο να εισάγετε τα παραπάνω στοιχεία. Στη συνέχεια να δώσετε τρόπους αναφοράς σε συγκεκριµένα στοιχεία του πίνακα αυτού, όπως ο βαθµός του 3ου σπουδαστή και το όνοµα του2ου σπουδαστή. 2. Να δώσετε σε µορφή ψευδοκώδικά τους αλγορίθµους εισαγωγής στοιχείων σε ουρά και σωρό που υλοποιούνται µε λίστες 31/10/02 Εισαγωγή στους Υπολογιστές 36