Δομές Δεδομένων. Ενότητα 12: Κατακερματισμός: Χειρισμός Συγκρούσεων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.
|
|
- Ιάσων Παπανδρέου
- 7 χρόνια πριν
- Προβολές:
Transcript
1 Ενότητα 12: Κατακερματισμός: Χειρισμός Συγκρούσεων Καθηγήτρια Μαρία Σατρατζέμη
2 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2
3 Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Μακεδονίας» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3
4 Σκοποί ενότητας Σκοπός της ενότητας είναι να παρουσιαστούν στο φοιτητή η δομή του κατακερματισμού με την τεχνική της αλυσιδωτής σύνδεσης. Παρουσιάζεται η υλοποίηση με τη χρήση πινάκων και συνδεδεμένων λιστών. 4
5 Περιεχόμενα ενότητας Αλυσιδωτή σύνδεση (chaining) Αλυσιδωτή σύνδεση (chaining): υλοποίηση Αλυσιδωτή σύνδεση (chaining): δηλώσεις Διαδικασία δημιουργίας κενής δομής Διαδικασία ελέγχου γεμάτης λίστας Διαδικασία αναζήτησης τιμής στη δομή Hlist Διαδικασία αναζήτησης σε υπολίστα συνoνύμων Διαδικασία εισαγωγής Διαδικασία εισαγωγής: Παράδειγμα Διαγραφή εγγραφής Διαδικασία διαγραφής εγγραφής Διαδικασία διαγραφής εγγραφής: παράδειγμα Εναλλακτική υλοποίηση Ανοιχτή διευθυνσιοδότηση 5
6 Αλυσιδωτή σύνδεση (chaining) -1- Η μέθοδος αυτή βασίζεται στις συναρτήσεις κατακερματισμού και στις συνδεδεμένες λίστες. Κάθε μια από τις τιμές κατακερματισμού αντιστοιχεί σε μια συνδεδεμένη υπολίστα συνωνύμων, δηλαδή κάθε σύνολο συνωνύμων σχηματίζει μια συνδεδεμένη υπολίστα. Παράδειγμα: αν έχουμε τιμές κατακερματισμού από 1 έως 5 και κλειδιά με τιμές 23, 38, 10, 12, 53, 45 και 4 τότε οι υπολίστες συνωνύμων που σχηματίζονται είναι όπως δείχνει το διπλανό σχήμα: 6
7 Αλυσιδωτή σύνδεση (chaining) -2- Όταν η υπολίστα έχει περιορισμένο αριθμό εγγραφών, ονομάζεται πολλές φορές κάδος (bucket). Σε ορισμένες περιπτώσεις το μέγεθος του κάδου είναι μία μόνο εγγραφή, αλλά συνήθως ένας κάδος έχει χωρητικότητα πολλών εγγραφών. Ανεξάρτητα από το αν το μέγεθος της υπολίστας είναι σταθερό ή όχι, το μεγαλύτερο μειονέκτημα του κατακερματισμού είναι η αδυναμία δημιουργίας σταθερού αριθμού εγγραφών σε κάθε υπολίστα. 7
8 Αλυσιδωτή σύνδεση (chaining): αποδοτικότητα -1- Η αποδοτικότητα αυτής της μεθόδου εξαρτάται από πολλές παραμέτρους: Το πρώτο πράγμα που θα πρέπει να σκεφτούμε είναι το πλήθος των υπολιστών που θα χρησιμοποιήσουμε. Για να καθορίσουμε, όμως, τον αριθμό των υπολιστών, πρέπει πρώτα να αποφασίσουμε πόσες εγγραφές θα περιέχει κάθε υπολίστα. 8
9 Αλυσιδωτή σύνδεση (chaining): αποδοτικότητα -1- Αν επιθυμούμε να έχουμε k εγγραφές το πολύ σε κάθε υπολίστα και έχουμε συνολικά N εγγραφές στη λίστα, τότε ο συνολικός αριθμός υπολιστών ή κάδων που θα έχουμε είναι b = N/k και η σχέση υπολογισμού της τιμής κατακερματισμού είναι: HashValue = (KeyValue % b) + 1 όπου HashValue είναι η τιμή κατακερματισμού και KeyValue η τιμή του κλειδιού που κατακερματίζεται. 9
10 Αλυσιδωτή σύνδεση (chaining): αποδοτικότητα -2- Αν οι τιμές κλειδιών σχηματίζουν ένα πυκνό σύνολο από ακέραιες τιμές (δηλαδή, αν υπάρχει μια εγγραφή με μια τιμή κλειδιού για κάθε πιθανή τιμή κλειδιού του διαστήματος των κλειδιών) και αν δεν υπάρχουν διπλότυπα, τότε οποιαδήποτε τιμή κι αν επιλέξουμε για το b θα μας δώσει μια όσο γίνεται πιο τέλεια ομοιόμορφη κατανομή. Αν το N είναι πολλαπλάσιο του b, η κατανομή θα είναι ακριβώς τέλεια. Αν, όμως, οι τιμές κλειδιών δεν σχηματίζουν ένα πυκνό σύνολο, αλλά ούτε και μπορούν εύκολα να μετατραπούν σε ένα πυκνό σύνολο από ακέραιες τιμές, τότε η επιλογή του b απαιτεί προσοχή. 10
11 Αλυσιδωτή σύνδεση (chaining): αποδοτικότητα -3- Είναι προφανές ότι δεν θα πρέπει να επιλεγεί ένας διαιρέτης ο οποίος να περιέχει έναν παράγοντα που να διαιρείται με τις περισσότερες τιμές κλειδιών. Αν, για παράδειγμα, όλες οι τιμές των κλειδιών είναι άρτιοι αριθμοί και επιλέξουμε άρτιο διαιρέτη, τότε δεν θα προκύψει ποτέ περιττός αριθμός ως υπόλοιπο. Αυτό θα έχει ως συνέπεια όλες οι τιμές κατακερματισμού να είναι περιττοί αριθμοί και να χρησιμοποιούνται μόνο οι μισές υπολίστες. Στην πραγματικότητα, σε καμία περίπτωση δεν είναι καλό να επιλέξουμε άρτιο αριθμό για το b, όταν οι τιμές των κλειδιών δεν είναι πυκνό σύνολο. Αυτό ισχύει, γιατί διαιρώντας με άρτιο αριθμό προκύπτει υπόλοιπο περιττός ή άρτιος αριθμός ανάλογα με το αν ο διαιρετέος είναι περιττός ή άρτιος αριθμός. Έτσι, αν οι περισσότερες τιμές κλειδιών είναι περιττοί αριθμοί, τότε και τα περισσότερα υπόλοιπα θα είναι περιττοί αριθμοί, ενώ, αν οι περισσότερες τιμές κλειδιών είναι άρτιοι αριθμοί, τότε τα περισσότερα υπόλοιπα θα είναι άρτιοι αριθμοί. 11
12 Αλυσιδωτή σύνδεση (chaining): αποδοτικότητα -4- Εμπειρικά έχει αποδειχθεί ότι το b πρέπει να είναι ο μικρότερος πρώτος αριθμός που είναι ίσος ή μεγαλύτερος από b=ν/k. Επίσης, καλή επιλογή για το b είναι να πάρουμε τον πρώτο περιττό αριθμό που είναι ίσος ή μεγαλύτερος από b=ν/k. 12
13 Αλυσιδωτή σύνδεση (chaining): Η υλοποίηση της παραπάνω μεθόδου γίνεται με τη βοήθεια ενός πίνακα, που έχει τόσες θέσεις όσες είναι και οι διαφορετικές τιμές κατακερματισμού. Ο πίνακας αυτός, που μπορεί να ονομαστεί HashTable, περιέχει δείκτες προς τις συνδεδεμένες υπολίστες συνωνύμων, δηλαδή κάθε καταχώρησή του είναι ένας δείκτης που δείχνει στην αρχή της αντίστοιχης υπολίστας. Έτσι, λοιπόν, έχουμε μια δομή που αποτελείται από: μια λίστα εγγραφών και υλοποίηση έναν πίνακα δεικτών προς υπολίστες συνωνύμων, τα οποία κατευθύνονται στη συγκεκριμένη θέση με βάση τη συνάρτηση κατακερματισμού. 13
14 Αλυσιδωτή σύνδεση (chaining): δηλώσεις #define HMax...; /*όριο μεγέθους του πίνακα κατακερματισμού*/ #define VMax...; /*όριο μεγέθους της λίστας εγγραφών*/ #define EndOfList -1; /*σημαία που σηματοδοτεί το τέλος της λίστας και της κάθε υπολίστας συνωνύμων*/ typedef int ListElementType; /*τύπος δεδομένων για τα στοιχεία της λίστας*/ typedef struct { int RecKey; ListElementType Data; int Link; } ListElm; typedef struct { int HashTable[HMax+1]; // πίνακας δεικτών προς τις υπολίστες συνωνύμων int Size; εγγραφών // πλήθος int SubListPtr; // δείκτης προς 1 υπολίστα συνωνύμων int StackPtr; // δείκτης στη 1η (ελεύθερη) θέση της λίστας εγγραφών List ListElm List[VMax+1]; } HashListType; 14
15 Αλυσιδωτή σύνδεση (chaining): δηλώσεις Στο στάδιο της δημιουργίας της δομής αυτής, κάθε συνώνυμη εγγραφή, που ανήκει σε ένα συγκεκριμένο σύνολο συνωνύμων, προστίθεται στην αντίστοιχη συνδεδεμένη υπολίστα. Μετά τη δημιουργία της δομής, μια αναζήτηση για μια συγκεκριμένη εγγραφή περιλαμβάνει: πρώτα κατακερματισμό για τον εντοπισμό της αρχής της κατάλληλης συνδεδεμένης υπολίστας και, εν συνεχεία, γραμμική αναζήτηση της συνδεδεμένης υπολίστας αυτής για εντοπισμό της ζητούμενης εγγραφής, αν υπάρχει. 15
16 Διαδικασία δημιουργίας κενής δομής void CreateHashList(HashListType *HList) /*Λειτουργία: { Επιστρέφει: int index; Δημιουργεί μια δομή HList. Την δομή HList.*/ HList ->Size = 0; HList ->StackPtr = 1; Index = 1; while (index <= HMax) { HList->HashTable[index] = EndOfList; index++; index = 1; while (Index<VMax) { } HList ->List[Index].Link = index+1; HList->List[index].Data = 0; //εικονική τιμή index++; } HList -> List[Index].Link = EndOfList; } 16
17 Για να εισάγουμε μια εγγραφή στη δομή HashList, πρέπει πρώτα να ελέγξουμε αν η συνδεδεμένη λίστα List είναι γεμάτη με μια συνάρτηση FullHashList, που επιστρέφει TRUE, αν η λίστα είναι γεμάτη, και FALSE, διαφορετικά: boolean FullHashList(HashListType HList) /*Δέχεται: Μια δομή HList. { } Λειτουργία: Επιστρέφει: return (HList.Size == VMax); void HashKey(int Key, int *HValue) { } Διαδικασία ελέγχου γεμάτης *HValue=Key%HMax + 1; λίστας Ελέγχει αν η λίστα List της δομής HList είναι γεμάτη. TRUE αν η λίστα List είναι γεμάτη, FALSE διαφορετικά.*/ 17
18 Διαδικασία αναζήτησης τιμής στη δομή Hlist -1- void SearchHashList(HashListType HList, int KeyArg, int *Loc, int *Pred) /*Δέχεται: Μια δομή HList και μια τιμή κλειδιού KeyArg. Λειτουργία: Αναζητά μια εγγραφή με κλειδί KeyArg στη δομή HList. Επιστρέφει: Τη θέση Loc της εγγραφής και τη θέση Pred της προηγούμενηςεγγραφής της υπολίστας στην οποία ανήκει. Αν δεν υπάρχει εγγραφή με κλειδί KeyArg τότε Loc=Pred=0.*/ 18
19 Διαδικασία αναζήτησης τιμής στη δομή Hlist -1- { } int HVal; HashKey(KeyArg,HVal); if (HList.HashTable[HVal] == EndOfList) { *Pred = 0; *Loc = 0; } else { } HList.SubListPtr = HList.HashTable[HVal]; SearchSynonymList(HList, KeyArg, &(*Loc), &(*Pred)); 19
20 Διαδικασία αναζήτησης σε υπολίστα συνoνύμων -1- void SearchSynonymList(HashListType HList, int KeyArg, int *Loc, int *Pred) /*Δέχεται: Μια δομή HList και μια τιμή κλειδιού KeyArg. Λειτουργία: Αναζητά μια εγγραφή με κλειδί KeyArg στην υπολίστα συνωνύμων. Επιστρέφει: Τη θέση Loc της εγγραφής και τη θέση Pred της προηγούμενηςεγγραφής στην υπολίστα.*/ 20
21 Διαδικασία αναζήτησης σε υπολίστα συνoνύμων -2- { int Next; Next = HList.SubListPtr; *Loc = 0; *Pred = 0; while (Next!= EndOfList) { if (HList.List[Next].RecKey == KeyArg) { *Loc = Next; Next = EndOfList; } else { *Pred = Next; Next = HList.List[Next].Link; } } } 21
22 Διαδικασία εισαγωγής -1- void AddRec(HashListType *HList, ListElm InRec) /*Δέχεται: Μια δομή HList και μια εγγραφή InRec. Λειτουργία: Εισάγει την εγγραφή InRec στη λίστα List, αν δεν είναι γεμάτη, και ενημερώνει τη δομή HList. Επιστρέφει: Την τροποποιημένη δομή HList. Έξοδος: Μήνυμα γεμάτης λίστας, αν η List είναι γεμάτη, διαφορετικά, αν υπάρχει ήδη εγγραφή με το ίδιο κλειδί, εμφάνιση αντίστοιχου μηνύματος.*/ 22
23 Διαδικασία εισαγωγής -2- { int Loc, Pred, New, HVal; if (!FullHashList(*HList)) { Loc = 0; Pred = 0; SearchHashList(*HList, InRec.RecKey, &Loc, &Pred); 23
24 Διαδικασία εισαγωγής -3- if (Loc == 0) { HList->Size ++; New = HList->StackPtr; HList->StackPtr = HList->List[New].Link; HList->List[New] = InRec; if (Pred == 0) { HashKey(InRec.RecKey, &HVal); HList->HashTable[HVal] == New; HList->List[New].Link == EndOfList; } } else { HList->List[New].Link == HList->List[Pred].Link; HList->List[Pred].Link == New; } else printf("yparxei HDH EGGRAFH ME TO IDIO KLEIDI \n"); } else printf("full list...\n"); } 24
25 Παράδειγμα -1- Έστω ότι το πλήθος των συνδεδεμένων υπολιστών είναι 5 και ότι η συνάρτηση κατακερματισμού είναι αυτή που χρησιμοποιείται στην διαίρεση, δηλαδή: HValue=(Key % HMax) + 1 HMax=5 Ο πίνακας HashTable θα έχει 6 θέσεις. Θα χρησιμοποιηθούν οι 5 (1 έως 5) σε καθεμιά από τις οποίες καταχωρούμε αρχικά την τιμή -1, που λειτουργεί ως μηδενικός δείκτης. VMax=15 Το μέγεθος του πίνακα List θεωρούμε ότι είναι 16, δηλαδή και ο πίνακας List θα είναι ως εξής: 25
26 Παράδειγμα -2- Δηλαδή, η εγγραφή που θα αποθηκευτεί στην θέση 1 του πίνακα List θα έχει ως επόμενη αυτήν που θα αποθηκευτεί στη θέση 2 (List[1].link=2), κ.ο.κ. Η αρχικοποίηση των τιμών του πίνακα HashTable όσο και του πίνακα List γίνεται με τη βοήθεια της διαδικασίας CreateHashList. Κατ' αρχήν θεωρούμε ότι τα στοιχεία του πίνακα List σχηματίζουν συνδεδεμένη λίστα, όπου το πρώτο στοιχείο θα αποθηκευτεί στη θέση 1 του πίνακα List, το δεύτερο στοιχείο θα αποθηκευτεί στη θέση 2 του πίνακα List, κ.ο.κ. και η αρχή της συνδεδεμένης λίστας αποθηκεύεται στη μεταβλητή StackPtr. Η συνδεδεμένη αυτή λίστα λειτουργεί ως στοίβα. 26
27 Παράδειγμα -3- Αρχικά, η συνδεδεμένη λίστα List της δομής HashList είναι κενή και έστω ότι επιθυμούμε να εισάγουμε σ' αυτήν μια εγγραφή με τιμή κλειδιού 40. τ Η συνάρτηση κατακερματισμού μας δίνει τιμή κατακερματισμού HValue=(40 mod 5) + 1 = 1 δηλαδή η εγγραφή θα προστεθεί στη 1η υπολίστα. Η List δεν είναι γεμάτη ούτε και υπάρχει ήδη εγγραφή με κλειδί 40, επομένως η νέα εγγραφή θα είναι το πρώτο στοιχείο της λίστας List και στην θέση HValue=1 ου πίνακα HashTable θα καταχωρηθεί η τιμή 1: 27
28 Παράδειγμα -4- Έστω ότι η επόμενη εγγραφή που πρόκειται να εισάγουμε έχει τιμή κλειδιού 71. Η τιμή κατακερματισμού είναι HValue=(71 % 5) + 1 = 2 δηλαδή η εγγραφή θα προστεθεί στην 2η υπολίστα και στη θέση HValue=2 του πίνακα HashTable θα καταχωρηθεί η τιμή 2: 28
29 Παράδειγμα -5- Αν τώρα εισαγάγουμε μια εγγραφή με κλειδί 23 η εισαγωγή αυτή θα γίνει στην 4η υπολίστα, γιατί HValue=(23 % 5) + 1 = 4 και στην θέση HValue=4 του πίνακα HashTable θα καταχωρηθεί η τιμή 3, γιατί η εισαγωγή γίνεται στη θέση 3 της λίστας List: 29
30 Παράδειγμα -6- Στη συνέχεια, επιθυμούμε να εισάγουμε μια νέα εγγραφή με κλειδί 86, και η εισαγωγή θα γίνει στη θέση 4 της λίστας List. Επειδή έχει ήδη εισαχθεί εγγραφή με αυτήν την τιμή κατακερματισμού (η εγγραφή με κλειδί 71), θα πρέπει να συνδεθούν αυτές οι δύο συνώνυμες εγγραφές για να σχηματιστεί η αντίστοιχη υπολίστα. Η σύνδεση αυτή γίνεται αλλάζοντας την τιμή του πεδίου Link της δεύτερης εγγραφής σε 4 ώστε να δείχνει στην εγγραφή 4: Όπως φαίνεται από το παραπάνω σχήμα, η τιμή HashTable[2] δεν αλλάζει, γιατί δείχνει στην αρχή της 2ης υπολίστας, που είναι η δεύτερη εγγραφή. 30
31 Παράδειγμα -7- Εν συνεχεία, έστω ότι θέλουμε να εισαγάγουμε μια εγγραφή με τιμή κλειδιού 12. Επειδή HValue=(12 % 5) + 1 = 3 και η εγγραφή θα τοποθετηθεί στην θέση 5 της λίστας List, στην θέση 3 του πίνακα καταχωρούμε την τιμή 5, όπως δείχνει και το διπλανό σχήμα: 31
32 Παράδειγμα -8- Έστω ότι ακολουθεί νέα εισαγωγή με τιμή κλειδιού 45. Η εγγραφή αυτή θα τοποθετηθεί στην έκτη θέση της λίστας List και θα ανήκει στην 1η υπολίστα συνωνύμων, αφού HValue=(45 % 5) + 1 = 1 Επομένως, το πεδίο Link της εγγραφής με κλειδί 40 θα πάρει τιμή 6 για να δείχνει στην έκτη εγγραφή: 32
33 Παράδειγμα -9- Αν τώρα αποφασίσουμε να εισαγάγουμε μια εγγραφή με κλειδί 39, θα πρέπει να αποθηκεύσουμε στην θέση HValue=(39 % 5) + 1 = 5 του πίνακα HashTable την τιμή 7, γιατί η νέα εγγραφή θα τοποθετηθεί στην θέση 7 της λίστας List: 33
34 Παράδειγμα -10- Έστω ότι η επόμενη εγγραφή που θα εισαχθεί είναι μια εγγραφή με κλειδί 68 δηλαδή με τιμή κατακερματισμού HValue=(68 % 5) + 1 = 4 Η εγγραφή αυτή θα βρίσκεται στην όγδοη θέση της λίστας List και θα ανήκει στην τέταρτη υπολίστα συνωνύμων, οπότε θέτουμε την τιμή 8 στο πεδίο Link της εγγραφής με τιμή κλειδιού 23: 34
35 Παράδειγμα -11- Αν υποθέσουμε ότι ακολουθεί εισαγωγή μιας εγγραφής με κλειδί 30, τότε η τιμή κατακερματισμού HValue=(30 % 5) + 1 = 1 μας οδηγεί στο να αλλάξουμε την τιμή του πεδίου Link της εγγραφής με τιμή κλειδιού 45 σε 9, αφού η εισαγωγή θα γίνει στην θέση 9 της λίστας List: 35
36 Παράδειγμα -12- Κατά τον ίδιο τρόπο μπορούν να γίνουν και οι εισαγωγές άλλων στοιχείων. Στα σχήματα που ακολουθούν φαίνονται οι εισαγωγές εγγραφών με κλειδιά 22, 3 και 54 αντίστοιχα: 36
37 Διαγραφή εγγραφής -1- Όταν πρόκειται να διαγράψουμε μια εγγραφή, καλούμε πρώτα τη διαδικασία SearchHashList για να την εντοπίσουμε και, εφόσον υπάρχει, τη διαγράφουμε διακρίνοντας δύο περιπτώσεις: (α) η εγγραφή έχει προηγούμενη και (β) η εγγραφή είναι η πρώτη της υπολίστας στην οποία ανήκει. Στην περίπτωση (α): χρειάζεται να αλλάξουμε την τιμή του πεδίου Link της προηγούμενης εγγραφής ώστε να δείχνει στην επόμενη αυτής που θα διαγραφεί, ενώ στην περίπτωση (β): βρίσκουμε την τιμή κατακερματισμού HValue και αλλάζουμε την καταχώρηση HashTable[HValue] ώστε να δείχνει στην θέση της δεύτερης εγγραφής της αντίστοιχης υπολίστας. 37
38 Διαγραφή εγγραφής -2- Και στις δυο περιπτώσεις: χρειάζεται να θέσουμε την τιμή StackPtr στο πεδίο Link της διαγραμμένης εγγραφής και ο δείκτης StackPtr να δείχνει στη θέση της διαγραμμένης εγγραφής, ώστε να γίνει αυτή η πρώτη διαθέσιμη θέση της λίστας List. Ο διαδικασία της διαγραφής είναι ο εξής: 38
39 Διαδικασία διαγραφής εγγραφής -1- void DeleteRec(HashListType HList, int DelKey) /*Δέχεται: Μια δομή HList και το κλειδί DelKey της εγγραφής που πρόκειται να διαγραφεί. Λειτουργία: Διαγράφει την εγγραφή με κλειδί DelKey από τη λίστα List, αν υπάρχει, και ενημερώνει τη δομή HList. Επιστρέφει: Την τροποποιημένη δομή HList. Έξοδος: Αν δεν υπάρχει εγγραφή με αυτό το κλειδί, εμφάνιση αντίστοιχου μηνύματος.*/ 39
40 Διαδικασία διαγραφής εγγραφής -2- { int Loc, Pred, New, HVal; SearchHashList(*HList, DelKey, &Loc, &Pred); if (Loc!= 0) { if (Pred!= 0) HList->List[Pred].Link = HList->List[Loc].Link; else { } HashKey(DelKey, &HVal); HList ->HashTable[HVal] = HList->List[Loc]. Link; HList ->List[Loc].Link = HList ->StackPtr; HList ->StackPtr = Loc; HList ->Size--; } else printf( DEN YPARXEI EGGRAFH ME KLEIDI %d \n", DelKey); } 40
41 Διαδικασία διαγραφής εγγραφής: παράδειγμα -1- Έστω ότι θέλουμε να διαγράψουμε την εγγραφή με κλειδί 68. Η εγγραφή αυτή ανήκει στην 4η υπολίστα συνωνύμων, αφού HValue=(68 % 5) + 1 = 4 και δεν είναι η πρώτη εγγραφή της υπολίστας αυτής. Επομένως: θέτουμε το πεδίο Link της εγγραφής με κλειδί 23, δηλαδή της προηγούμενης εγγραφής, ίσο με τη θέση της επόμενης εγγραφής, δηλαδή 11. Ο δείκτης StackPtr έχει τιμή 13, επομένως στο πεδίο Link της εγγραφής με κλειδί 68 θέτουμε την τιμή 13, ενώ ο δείκτης StackPtr παίρνει τώρα τιμή 8: 41
42 Διαδικασία διαγραφής εγγραφής: παράδειγμα -2- Αν επιθυμούμε να διαγράψουμε την εγγραφή με τιμή κλειδιού 12 ((12 % 5) + 1 = 3), δηλαδή την πρώτη εγγραφή της τρίτης υπολίστας συνωνύμων, τότε χρειάζεται: να θέσουμε την τιμή 10 στην θέση 3 του πίνακα HashTable, γιατί η πρώτη εγγραφή της τρίτης υπολίστας θα είναι τώρα η εγγραφή με τιμή κλειδιού 22, που βρίσκεται στη θέση 10 της λίστας List. Στο πεδίο Link της διαγραμμένης εγγραφής θέτουμε την τιμή StackPtr=8 και ο δείκτης StackPtr παίρνει τιμή 5: 42
43 Διαδικασία διαγραφής εγγραφής: παράδειγμα -3- Αν επιθυμούμε να διαγράψουμε την εγγραφή με τιμή κλειδιού 12 ((12 % 5) + 1 = 3), δηλαδή την πρώτη εγγραφή της τρίτης υπολίστας συνωνύμων, τότε χρειάζεται: να θέσουμε την τιμή 10 στην θέση 3 του πίνακα HashTable, γιατί η πρώτη εγγραφή της τρίτης υπολίστας θα είναι τώρα η εγγραφή με τιμή κλειδιού 22, που βρίσκεται στη θέση 10 της λίστας List. Στο πεδίο Link της διαγραμμένης εγγραφής θέτουμε την τιμή StackPtr=8 και ο δείκτης StackPtr παίρνει τιμή 5: 43
44 Διαδικασία διαγραφής εγγραφής: παράδειγμα -4- Από τα αριθμητικά παραδείγματα φαίνεται ότι στη δομή List αποθηκεύονται οι υπολίστες συνωνύμων, ως συνδεδεμένες λίστες, αλλά και οι εγγραφές που είναι διαθέσιμες για αποθήκευση στοιχείων. Για τις εγγραφές αυτές διατηρούμε μια στοίβα, της οποίας η κορυφή αποθηκεύεται στη μεταβλητή StackPtr και η διεύθυνση του επόμενου στοιχείου της στοίβας αποθηκεύεται στο πεδίο Link. 44
45 Εναλλακτική υλοποίηση -1- Υπάρχει και μια εναλλακτική υλοποίηση κατακερματισμού με αλυσιδωτή σύνδεση χωρίς να χρειάζεται ο πίνακας HashTable: Αν υπάρχουν k πιθανές τιμές κατακερματισμού, τότε κρατούμε τις k πρώτες θέσεις του πίνακα List για τις πρώτες εγγραφές των k υπολιστών αντίστοιχα. Όταν πρόκειται να εισαγάγουμε μια νέα εγγραφή στη λίστα, κατακερματίζουμε το κλειδί της για να βρούμε τη θέση μέσα στη λίστα List, όπου πρέπει να τοποθετήσουμε την εγγραφή αυτή. Αν η θέση δεν είναι κατειλημμένη, τότε η εγγραφή τοποθετείται εκεί και αποτελεί την αρχή μιας υπολίστας συνωνύμων. Αν η θέση είναι κατειλημμένη από άλλη εγγραφή, τότε τοποθετούμε τη νέα εγγραφή στην πρώτη διαθέσιμη θέση της λίστας List μετά από τις πρώτες k θέσεις και τη συνδέουμε με την αντίστοιχη υπολίστα συνωνύμων. 45
46 Εναλλακτική υλοποίηση -2- Αν έχουμε τις τιμές κατακερματισμού 1, 2, 3, 4 και 5 όπως παραπάνω, και εισαγάγουμε τις ίδιες εγγραφές με την ίδια σειρά, όπως στο προηγούμενο παράδειγμα, δηλαδή οι τιμές των κλειδιών είναι με τη σειρά 40, 71, 23, 86, 12, 45, 39, 68, 30, 22, 3 και 54, τότε οι καταχωρήσεις στον πίνακα List είναι ως εξής: 46
47 Ανοιχτή διευθυνσιοδότηση -1- Στην τεχνική της ανοιχτής διευθυνσιοδότησης (open addressing), όταν συμβαίνει κάποια σύγκρουση, γίνεται εξέταση ή ανίχνευση της περιοχής των εγγραφών σύμφωνα με κάποιο προκαθορισμένο σχήμα για να εντοπιστεί μια κενή σχισμή για τη νέα εγγραφή. Αργότερα, όταν αναζητείται αυτή η εγγραφή, χρησιμοποιείται το ίδιο σχήμα ανίχνευσης για τον εντοπισμό της. 47
48 Ανοιχτή διευθυνσιοδότηση -2- Η πιο απλή μορφή εξέτασης που χρησιμοποιείται στην μέθοδο της ανοιχτής διευθυνσιοδότησης είναι η γραμμική εξέταση (linear probing). Στην γραμμική εξέταση, όταν θέλουμε να εισαγάγουμε μια εγγραφή και η σχισμή στην οποία πρέπει να τοποθετηθεί είναι κατειλημμένη, ελέγχουμε αν η επόμενη σειριακά σχισμή (ή κάδος) είναι ελεύθερη: Έτσι, δηλαδή, αν η σχισμή στη θέση k της λίστας είναι κατειλημμένη, τότε η επόμενη θέση που εξετάζεται είναι η k+1. Για την ακρίβεια, η θέση που εξετάζεται είναι η (k+1)mod(vmax), πράγμα που σημαίνει ότι η εξέταση γίνεται κατά κυκλικό τρόπο, δηλαδή, αν φτάσει στην τελευταία θέση του πίνακα, η διαδικασία συνεχίζεται στην πρώτη θέση. Η αναζήτηση, λοιπόν, προχωρά γραμμικά στις διαδοχικές θέσεις του πίνακα μέχρις ότου βρεθεί κενός χώρος ή προσπελαστεί πάλι η αρχική θέση (που σημαίνει ότι ο πίνακας είναι γεμάτος). Αργότερα, αφού έχει δημιουργηθεί η δομή της λίστας με κατακερματισμό, χρησιμοποιείται η ίδια σειρά εξέτασης για την αναζήτηση μιας εγγραφής. 48
49 Ανοιχτή διευθυνσιοδότηση -3- Ένα μεγάλο μειονέκτημα της γραμμικής εξέτασης σε σχέση με άλλες τεχνικές εξέτασης είναι το πρόβλημα της συγκέντρωσης (clustering). Συγκέντρωση είναι η τάση που έχουν οι εγγραφές να συγκεντρώνονται γύρω από μια περιοχή της λίστας, όπου έχουν συμβεί μία ή παραπάνω συγκρούσεις. Η συγκέντρωση εμφανίζεται στην περίπτωση της γραμμικής εξέτασης, γιατί μια σύγκρουση προκαλεί την επόμενη σειριακά διαθέσιμη θέση να χρησιμοποιηθεί για την επίλυση της σύγκρουσης. Αυτό έχει ως αποτέλεσμα να υπάρχει μεγαλύτερη πιθανότητα για επόμενες συγκρούσεις σ' αυτήν την γειτονιά, οπότε προκύπτουν περισσότερες συγκρούσεις και αυξάνεται η συγκέντρωση. 49
50 Ανοιχτή διευθυνσιοδότηση -4- Όταν οι εγγραφές συγκεντρώνονται ως αποτέλεσμα της γραμμικής εξέτασης, μια αναζήτηση για μια εγγραφή που έπρεπε να τοποθετηθεί σε άλλη θέση λόγω σύγκρουσης μπορεί να εκφυλιστεί σε μια υπερβολικά μεγάλη σειριακή αναζήτηση. Ωστόσο, αν το σχήμα εξέτασης που χρησιμοποιείται, κατανέμει καλύτερα τις εγγραφές μέσα στη λίστα, όταν γίνονται συγκρούσεις, τότε οι περισσότερες αναζητήσεις, που απαιτούν εξέταση, μπορούν να παραμείνουν σχετικά μικρές. 50
51 Τέλος Ενότητας
Δομές Δεδομένων. Ενότητα 11: Τεχνικές Κατακερματισμού. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.
Ενότητα 11: Τεχνικές Κατακερματισμού Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα
Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό
Διαβάστε περισσότεραΔομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής
Ενότητα 5: Δείκτες και Δυναμική Δέσμευση- Αποδέσμευση Μνήμης στη C/ Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με δείκτες /Ένα πακέτο για τον ΑΤΔ Συνδεδεμένη Λίστα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 10: Πλήρη Δυαδικά Δέντρα, Μέγιστα/Ελάχιστα Δέντρα & Εισαγωγή στο Σωρό- Ο ΑΤΔ Μέγιστος Σωρός. Καθηγήτρια Μαρία Σατρατζέμη
Ενότητα 10: Πλήρη Δυαδικά Δέντρα, Μέγιστα/Ελάχιστα Δέντρα & Εισαγωγή στο Σωρό- Ο ΑΤΔ Μέγιστος Σωρός Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 3: Ουρές Εισαγωγή-Υλοποίηση ΑΤΔ Ουρά με πίνακα. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.
Ενότητα 3: Ουρές Εισαγωγή-Υλοποίηση ΑΤΔ Ουρά με πίνακα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 6: Εφαρμογή Συνδεδεμένων Λιστών: Αλφαβητικό ευρετήριο κειμένου- Υλοποίηση ΑΤΔ Στοίβα και Ουρά με δείκτες
Ενότητα 6: Εφαρμογή Συνδεδεμένων Λιστών: Αλφαβητικό ευρετήριο κειμένου- Υλοποίηση ΑΤΔ Στοίβα και Ουρά με δείκτες Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 7: Άλλες παραλλαγές Συνδεδεμένων Λιστών-Παράσταση Αραιού Πολυωνύμου με Συνδεδεμένη Λίστα. Καθηγήτρια Μαρία Σατρατζέμη
Ενότητα 7: Άλλες παραλλαγές Συνδεδεμένων Λιστών-Παράσταση Αραιού Πολυωνύμου με Συνδεδεμένη Λίστα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 2: Στοίβες Εισαγωγή-Υλοποίηση ΑΤΔ Στοίβα με Πίνακα-Εφαρμογή Στοίβας: Αντίστροφη Πολωνική Γραφή. Καθηγήτρια Μαρία Σατρατζέμη
Ενότητα 2: Στοίβες Εισαγωγή-Υλοποίηση ΑΤΔ Στοίβα με Πίνακα-Εφαρμογή Στοίβας: Αντίστροφη Πολωνική Γραφή Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
Διαβάστε περισσότεραΔομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής
Ενότητα 8: Γραμμική Αναζήτηση και Δυαδική Αναζήτηση-Εισαγωγή στα Δέντρα και Δυαδικά Δέντρα-Δυαδικά Δέντρα Αναζήτησης & Υλοποίηση ΔΔΑ με δείκτες Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 1: Εισαγωγή-Υλοποίηση του ΑΤΔ Σύνολο με Πίνακα. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.
Ενότητα 1: Εισαγωγή-Υλοποίηση του ΑΤΔ Σύνολο με Πίνακα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,
Διαβάστε περισσότεραΚατακερματισμός. 4/3/2009 Μ.Χατζόπουλος 1
Κατακερματισμός 4/3/2009 Μ.Χατζόπουλος 1 H ιδέα που βρίσκεται πίσω από την τεχνική του κατακερματισμού είναι να δίνεται μια συνάρτησης h, που λέγεται συνάρτηση κατακερματισμού ή παραγωγής τυχαίων τιμών
Διαβάστε περισσότεραΔομές Δεδομένων και Αλγόριθμοι
Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 19 Hashing - Κατακερματισμός 1 / 23 Πίνακες απευθείας πρόσβασης (Direct Access Tables) Οι πίνακες απευθείας
Διαβάστε περισσότεραΔιαδικαστικός Προγραμματισμός
Διαδικαστικός Προγραμματισμός Ενότητα 8: Παραδείγματα με μονοδιάστατους πίνακες, συναρτήσεις, δείκτες, πέρασμα παραμέτρων με αναφορά Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό
Διαβάστε περισσότεραΟ ΑΤΔ Λεξικό. Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος. Υλοποιήσεις
Ο ΑΤΔ Λεξικό Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος Υλοποιήσεις Πίνακας με στοιχεία bit (0 ή 1) (bit vector) Λίστα ακολουθιακή (πίνακας) ή συνδεδεμένη Είναι γνωστό το μέγιστο
Διαβάστε περισσότεραΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ Ενότητα # 3: Αριθμητικά Περιγραφικά Μέτρα Εβελίνα Κοσσιέρη Τμήμα Λογιστικής και Χρηματοοικονομικής ΑΔΕΙΕΣ
Διαβάστε περισσότεραΤμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών
Δομημένος Προγραμματισμός Ενότητα 4(β): Εργαστηριακή Άσκηση Αναπλ. Καθηγητής: Κωνσταντίνος Στεργίου Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΕνότητα 6: Κατακερματισμός Ασκήσεις και Λύσεις
ΗΥ2, Ενότητα : Ασκήσεις και Λύσεις Ενότητα : Κατακερματισμός Ασκήσεις και Λύσεις Άσκηση 1 Χρησιμοποιήστε τη συνάρτηση κατακερματισμού της διαίρεσης ως πρωτεύουσα συνάρτηση κατακερματισμού και τη συνάρτηση
Διαβάστε περισσότεραΤμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών
Δομημένος Προγραμματισμός Ενότητα 5(γ): Εργαστηριακή Άσκηση Αναπλ. Καθηγητής: Κωνσταντίνος Στεργίου Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές Δεδομένων Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 13: B-Δέντρα/AVL-Δέντρα. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων
Ενότητα 13: B-Δέντρα/AVL-Δέντρα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε
Διαβάστε περισσότεραΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος
ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος Ημερομηνία Παράδοσης: Δευτέρα, 14 Μαΐου 2018, ώρα 23:59 Τρόπος Παράδοσης: Χρησιμοποιώντας
Διαβάστε περισσότεραΤα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο
Κατακερματισμός 1 Αποθήκευση εδομένων (σύνοψη) Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο Παραδοσιακά, μία σχέση (πίνακας/στιγμιότυπο) αποθηκεύεται σε ένα αρχείο Αρχείο δεδομένων
Διαβάστε περισσότεραΗλεκτρονικοί Υπολογιστές
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 9: Πίνακες στη C++ Ζαχαρούλα Ανδρεοπούλου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΛΙΣΤΕΣ. Ορισμός ΑΤΔ Λίστα ΑΤΔ Ακολουθιακή Λίστα Διαχείριση Δεικτών και Λιστών στη C ΑΤΔ Συνδεδεμένη Λίστα. Εφαρμογές και Χρήση Λιστών
ΛΙΣΤΕΣ Ορισμός ΑΤΔ Λίστα ΑΤΔ Ακολουθιακή Λίστα Διαχείριση Δεικτών και Λιστών στη C ΑΤΔ Συνδεδεμένη Λίστα Υλοποίηση με δείκτες (pointers) Υλοποίηση με πίνακα Εφαρμογές και Χρήση Λιστών Λίστες (Lists) Δεδομένα
Διαβάστε περισσότεραΔομημένος Προγραμματισμός
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Συναρτήσεις θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΟργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο
Κατακερµατισµός 1 Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο 1. Αρχεία Σωρού 2. Ταξινοµηµένα Αρχεία Φυσική διάταξη των εγγραφών
Διαβάστε περισσότεραΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 4: Μετασχηματισμοί Ισοδυναμίας Σαμαράς Νικόλαος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,
Διαβάστε περισσότεραΠοσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων Ι Σύνολο- Περιεχόμενο Μαθήματος
Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων Ι Σύνολο- Περιεχόμενο Μαθήματος Χιωτίδης Γεώργιος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές Δεδομένων Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 6α: Αναζήτηση Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commos. Για εκπαιδευτικό
Διαβάστε περισσότεραΔομές Δεδομένων. Δημήτρης Μιχαήλ. Κατακερματισμός. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Δομές Δεδομένων Κατακερματισμός Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Λεξικό Dictionary Ένα λεξικό (dictionary) είναι ένας αφηρημένος τύπος δεδομένων (ΑΤΔ) που διατηρεί
Διαβάστε περισσότεραΠΛΗ111. Ανοιξη Μάθηµα 8 ο. Αναζήτηση. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης
ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 8 ο Αναζήτηση Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Αναζήτηση Αναζήτηση σε ιατεταγµένο Πίνακα υαδική Αναζήτηση Κατακερµατισµός
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Ενότητα: 11Η ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ Δρ. ΠΑΝΤΕΛΗΣ ΑΓΓΕΛΙΔΗΣ Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
Διαβάστε περισσότεραΠληροφορική ΙΙ Θεματική Ενότητα 5
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Πληροφορική ΙΙ Θεματική Ενότητα 5 Λογικοί Τελεστές Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά
Διαβάστε περισσότεραΤμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών
Δομημένος Προγραμματισμός Ενότητα 5(α): Εργαστηριακή Άσκηση Αναπλ. Καθηγητής: Κωνσταντίνος Στεργίου Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΔομημένος Προγραμματισμός
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Αλφαριθμητικά θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΜΕ ΧΡΗΣΗ Η/Υ
ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΜΕ ΧΡΗΣΗ Η/Υ Ενότητα 7: Έλεγχοι σημαντικότητας πολλών ανεξάρτητων δειγμάτων Κωνσταντίνος Ζαφειρόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΣυναρτήσεις Κατακερματισμού και Πίνακες Κατακερματισμού
Μια συνάρτηση κατακερματισμού (hash function) h απεικονίζει κλειδιά ενός δοσμένου τύπου σεακεραίουςενόςσταθερούδιαστήματος [0,N 1]όπουΝτομέγεθοςτουπίνακα. Πχ: Συναρτήσεις Κατακερματισμού και Πίνακες Κατακερματισμού
Διαβάστε περισσότεραΔιδάσκων: Κωνσταντίνος Κώστα
Διάλεξη Ε7: Επανάληψη Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Hashing, Final Exam Διδάσκων: Κωνσταντίνος Κώστα ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. Ε7-1
Διαβάστε περισσότεραΜαθηματικά. Ενότητα 2: Δεκαδικοί αριθμοί, κλάσματα, δυνάμεις, ρίζες και ποσοστά. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής
Μαθηματικά Ενότητα 2: Δεκαδικοί αριθμοί, κλάσματα, δυνάμεις, ρίζες και ποσοστά Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 9: Στατιστικά Διάταξης- Στατιστικά σε Μέσο Γραμμικό Χρόνο Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ 1 (Εργαστήριο)
Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 10: Συναρτήσεις Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης
Διαβάστε περισσότεραΕιδικά Θέματα Προγραμματισμού
Ειδικά Θέματα Προγραμματισμού Ενότητα 3: Τύποι Δεδομένων - Τελεστές Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΥλοποίηση Λιστών. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:
Υλοποίηση Λιστών Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ευθύγραμμές Απλά και Διπλά Συνδεδεμένες Λίστες Κυκλικές Απλά και Διπλά Συνδεδεμένες Λίστες Τεχνικές Μείωσης Μνήμης ΕΠΛ 231 Δομές
Διαβάστε περισσότεραΣυστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας
Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:08 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων
Διαβάστε περισσότεραΤμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών
Δομημένος Προγραμματισμός Ενότητα 3(γ): Εργαστηριακή Άσκηση Αναπλ. Καθηγητής: Κωνσταντίνος Στεργίου Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΚατακερματισμός (Hashing)
Κατακερματισμός (Hashing) O κατακερματισμός είναι μια τεχνική οργάνωσης ενός αρχείου. Είναι αρκετά δημοφιλής μέθοδος για την οργάνωση αρχείων Βάσεων Δεδομένων, καθώς βοηθάει σημαντικά στην γρήγορη αναζήτηση
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Συστήματα Αυτομάτου Ελέγχου Ενότητα Α: Γραμμικά Συστήματα Όνομα Καθηγητή: Ραγκούση Μαρία Τμήμα: Ηλεκτρονικών Μηχανικών Τ.Ε. Άδειες
Διαβάστε περισσότεραΜαθηματικά. Ενότητα 7: Μη Πεπερασμένα Όρια. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής
Μαθηματικά Ενότητα 7: Μη Πεπερασμένα Όρια Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Αναζήτηση και ταξινόμηση
ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Αναζήτηση και ταξινόμηση Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Αναζήτηση και ταξινόµηση 7 Αναζήτηση (search) Πρόβληµα: αναζήτηση της καταχώρησης key στη
Διαβάστε περισσότεραΔιάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 7: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου Διδάσκων:
Διαβάστε περισσότεραΥπολογιστικά & Διακριτά Μαθηματικά
Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 1: Εισαγωγή- Χαρακτηριστικά Παραδείγματα Αλγορίθμων Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος
ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος Ημερομηνία Παράδοσης: Δευτέρα, 15 Μαΐου 2017, ώρα 23:59. Τρόπος Παράδοσης:
Διαβάστε περισσότεραΕλληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 6 : Δομές αρχείων. Δρ. Γκόγκος Χρήστος
1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Πληροφορική II Ενότητα 6 : Δομές αρχείων Δρ. Γκόγκος Χρήστος 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Χρηματοοικονομικής & Ελεγκτικής
Διαβάστε περισσότεραΠληροφορική. Εργαστηριακή Ενότητα 3 η : Επεξεργασία Κελιών Γραμμών & Στηλών. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Πληροφορική Εργαστηριακή Ενότητα 3 η : Επεξεργασία Κελιών Γραμμών & Στηλών Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής
Διαβάστε περισσότεραΜαθηματικά. Ενότητα 9: Όριο Συνάρτησης στο Διηνεκές. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής
Μαθηματικά Ενότητα 9: Όριο Συνάρτησης στο Διηνεκές Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για
Διαβάστε περισσότεραΜεταγλωττιστές. Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ
Μεταγλωττιστές Ενότητα 6: Λεκτική ανάλυση (Μέρος 2 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότεραΔυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2018-2019 1 Κατακερματισμός Πρόβλημα στατικού κατακερματισμού: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης)
Διαβάστε περισσότεραΚεφ.11: Ευρετήρια και Κατακερματισμός
Κεφ.11: Ευρετήρια και Κατακερματισμός Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Κεφ. 11: Ευρετήρια-Βασική θεωρία Μηχανισμοί ευρετηρίου χρησιμοποιούνται για την επιτάχυνση
Διαβάστε περισσότεραΒάσεις Περιβαλλοντικών Δεδομένων
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Βάσεις Περιβαλλοντικών Δεδομένων Ενότητα 2: Εισαγωγή Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά
Διαβάστε περισσότεραΤμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών
Δομημένος Προγραμματισμός Ενότητα 2(γ): Εργαστηριακή Άσκηση Αναπλ. Καθηγητής: Κωνσταντίνος Στεργίου Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ 1 (Εργαστήριο)
Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 4: Τύποι Δεδομένων και τελεστές Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ 1 (Εργαστήριο)
Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 3: Συναρτήσεις printf() και scanf() Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 8α: Ταξινόμηση-Σύγκριση αλγορίθμων ταξινόμησης Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης
Διαβάστε περισσότεραΠρογραμματισμός Υπολογιστών & Υπολογιστική Φυσική
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 8: Αρχεία και Δομές Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν
Διαβάστε περισσότεραΜαθηματικά. Ενότητα 1: Οι Αριθμοί. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής
Μαθηματικά Ενότητα 1: Οι Αριθμοί Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,
Διαβάστε περισσότεραΠίνακες (Μια παλιά άσκηση) Πίνακες Κατακερματισμού (Hash Tables) Πίνακες (Μια παλιά άσκηση) Εισαγωγή. A n
Πίνακες (Μια παλιά άσκηση) Πίνακες Κατακερματισμού (Hash Tables) Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς A n O(1) (στην πρώτη ελέυθερη θέση στο τέλος του πίνακα).
Διαβάστε περισσότεραΔιάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing)
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 23: Τεχνικές Κατακερματισμού II (Hashing) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Διαχείριση Συγκρούσεων με Ανοικτή Διεύθυνση a) Linear
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 6β: Ταξινόμηση με εισαγωγή και επιλογή Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creatve
Διαβάστε περισσότεραΣτατιστική Επιχειρήσεων Ι
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Τεχνολογικό Εκπαιδευτικό Ίδρυμα Πειραιά Στατιστική Επιχειρήσεων Ι Ενότητα 2: Τυχαίες Μεταβλητές Μιλτιάδης Χαλικιάς, Επίκουρος Καθηγητής Τμήμα Διοίκησης Επιχειρήσεων Άδειες Χρήσης Το
Διαβάστε περισσότερα10. Πίνακες Κατακερματισμού
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 10. Πίνακες Κατακερματισμού 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 16/12/2016 Πίνακες
Διαβάστε περισσότεραΟργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 7: Πρόγραμμα Συνδεδεμένης Λίστας και Διαδικασιών. Μανόλης Γ.Η.
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Οργάνωση Υπολογιστών Ασκήσεις 7: Πρόγραμμα Συνδεδεμένης Λίστας και Διαδικασιών Μανόλης Γ.Η. Κατεβαίνης Τμήμα Επιστήμης Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΔυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2017-2018 1 Κατακερματισμός Πρόβλημα στατικού κατακερματισμού: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης)
Διαβάστε περισσότεραΓ7.5 Αλγόριθμοι Αναζήτησης. Γ Λυκείου Κατεύθυνσης
Γ7.5 Αλγόριθμοι Αναζήτησης Γ Λυκείου Κατεύθυνσης Εισαγωγή Αλγόριθμος αναζήτησης θεωρείται ένας αλγόριθμος, ο οποίος προσπαθεί να εντοπίσει ένα στοιχείο με συγκεκριμένες ιδιότητες, μέσα σε μία συλλογή από
Διαβάστε περισσότεραΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΜΑΘΗΜΑΤΙΚΑ ΓΙΑ ΟΙΚΟΝΟΜΟΛΟΓΟΥΣ Ενότητα #8: Όριο και Συνέχεια Συνάρτησης Εβελίνα Κοσσιέρη Τμήμα Λογιστικής και Χρηματοοικονομικής
Διαβάστε περισσότεραΠληροφορική II. Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι. τύποι δεδομένων. Δρ. Γκόγκος Χρήστος
1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Πληροφορική II Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι τύποι δεδομένων Δρ. Γκόγκος Χρήστος 2 Ανοιχτά Ακαδημαϊκά Τμήμα Χρηματοοικονομικής
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Άσκηση αυτοαξιολόγησης 3-4 Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητες 3 & 4: ένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε
Διαβάστε περισσότεραΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX Μάθημα: Λειτουργικά Συστήματα Συστήματα Αρχείων Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης (clam@unipi.gr) Δρ. Α. Γαλάνη (agalani@unipi.gr) Λειτουργικά Συστήματα 1 Αρχεία με Χαρτογράφηση
Διαβάστε περισσότεραΜαθηματικά. Ενότητα 3: Εξισώσεις και Ανισώσεις 1 ου βαθμού. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής
Μαθηματικά Ενότητα 3: Εξισώσεις και Ανισώσεις 1 ου βαθμού Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΑριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης. Λογισμός 3 Ασκήσεις. Μιχάλης Μαριάς Τμήμα Α.Π.Θ.
Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Λογισμός 3 Μιχάλης Μαριάς Τμήμα Α.Π.Θ. Θεσσαλονίκη, 2015 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,
Διαβάστε περισσότεραΠρογραμματισμός Υπολογιστών & Υπολογιστική Φυσική
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 6: Πίνακες και Δείκτες Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν
Διαβάστε περισσότεραΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #5
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #5 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #5 2 Γενικά Στο Τετράδιο #5 του Εργαστηρίου θα ασχοληθούμε με πιο προχωρημένα θέματα υλοποίησης
Διαβάστε περισσότεραΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΜΕ ΧΡΗΣΗ Η/Υ
ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΜΕ ΧΡΗΣΗ Η/Υ Ενότητα 11: Επιλογή μεταβλητών στην παλινδρόμηση Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες,
Διαβάστε περισσότεραΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Άδειες Χρήσης ΥΠΟΛΟΓΙΣΤΕΣ ΙI Δομή του προγράμματος Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΔυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1
Δυναμικός Κατακερματισμός 1 Κατακερματισμός Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή (ως τρόπος οργάνωσης αρχείου) μέγεθος
Διαβάστε περισσότεραΑλγόριθμοι Αναζήτησης
Αλγόριθμοι Αναζήτησης ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΕισαγωγή στην Πληροφορική & τον Προγραμματισμό
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στην Πληροφορική & τον Προγραμματισμό Ενότητα 7 η : Εντολές Επανάληψης Ι. Ψαρομήλιγκος Χ. Κυτάγιας Τμήμα Διοίκησης Επιχειρήσεων
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ 1 (Εργαστήριο)
Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 2: Δομή ενός προγράμματος C Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ 1 (Εργαστήριο)
Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 8: Πίνακες Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
Διαβάστε περισσότεραΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ
Ε.Μ.Π. ΣΧΟΛΗ ΑΡΧΙΤΕΚΤΟΝΩΝ ΤΟΜΕΑΣ ΣΥΝΘΕΣΕΩΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΑΙΧΜΗΣ ΠΕΡΙΟΧΗ ΟΙΚΟΔΟΜΙΚΗΣ ntua ACADEMIC OPEN COURSES ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ ΤΗΣ ΟΙΚΟΔΟΜΙΚΗΣ II Β. ΤΣΟΥΡΑΣ Επίκουρος Καθηγητής Άδεια
Διαβάστε περισσότεραΔιάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 22: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης - Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου
Διαβάστε περισσότεραΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων
Διαβάστε περισσότεραΆδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ
Διακριτά Μαθηματικά Ι Ενότητα 2: Γεννήτριες Συναρτήσεις Μέρος 3 Διδάσκων: Χ. Μπούρας (bouras@cti.gr) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότερα3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB
ΣΧΟΛΗ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΕΜΠ ΜΕΘΟΔΟΙ ΕΠΙΛΥΣΗΣ ΜΕ Η/Υ 3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB Ν.Δ. Λαγαρός Μ. Φραγκιαδάκης Α. Στάμος Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες Χρήσης Creative
Διαβάστε περισσότεραΕισαγωγή στην Επιστήμη των Υπολογιστών
Εισαγωγή στην Επιστήμη των Υπολογιστών Ενότητα 6: Αρχεία Δομές Αρχείων, 2ΔΩ Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης Διδάσκων: Θεόδωρος Τσιλιγκιρίδης Μαθησιακοί Στόχοι Με την ολοκλήρωση της ενότητας ο φοιτητής/τρια
Διαβάστε περισσότεραΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κεφάλαιο 2 Επιμέλεια: Βασίλης Παλιουράς, Αναπληρωτής Καθηγητής Ευάγγελος Δερματάς, Αναπληρωτής Καθηγητής Σταύρος Νούσιας, Βοηθός Ερευνητή Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών
Διαβάστε περισσότεραΠίνακες Συμβόλων. εισαγωγή αναζήτηση επιλογή. εισαγωγή. αναζήτηση
Πίνακες Συμβόλων χειρότερη περίπτωση μέση περίπτωση εισαγωγή αναζήτηση επιλογή εισαγωγή αναζήτηση διατεταγμένος πίνακας διατεταγμένη λίστα μη διατεταγμένος πίνακας μη διατεταγμένη λίστα δένδρο αναζήτησης
Διαβάστε περισσότεραΛογιστικές Εφαρμογές Εργαστήριο
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Λογιστικές Εφαρμογές Εργαστήριο Ενότητα #7: Αναλυτικό Ημερολόγιο Διαφόρων Πράξεων Μαρία Ροδοσθένους Τμήμα Λογιστικής και Χρηματοοικονομικής
Διαβάστε περισσότεραΠρογραμματισμός Υπολογιστών & Υπολογιστική Φυσική
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 7: Συναρτήσεις Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΔΙΑΧΕΙΡΙΣΗ ΥΔΑΤΙΚΩΝ ΠΟΡΩΝ
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ ΔΙΑΧΕΙΡΙΣΗ ΥΔΑΤΙΚΩΝ ΠΟΡΩΝ Συνδυασμένη χρήση μοντέλων προσομοίωσης βελτιστοποίησης. Η μέθοδος του μητρώου μοναδιαίας απόκρισης Νικόλαος
Διαβάστε περισσότερα