Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

3.4 Στοίβα (stack) (μόνο θεωρία) Η στοίβα είναι μια δομή δεδομένων, στην οποία το στοιχείο που εισάγεται τελευταίο, εξάγεται πρώτο. (Last In First Out)

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "3.4 Στοίβα (stack) (μόνο θεωρία) Η στοίβα είναι μια δομή δεδομένων, στην οποία το στοιχείο που εισάγεται τελευταίο, εξάγεται πρώτο. (Last In First Out)"— Μεταγράφημα παρουσίασης:

1 3.4 Στοίβα (stack) (μόνο θεωρία) Η στοίβα είναι μια δομή δεδομένων, στην οποία το στοιχείο που εισάγεται τελευταίο, εξάγεται πρώτο. (Last In First Out) Ώθηση Απώθηση Ώθηση – Υπερχείλιση (overflow) Απώθηση – Υποχείλιση Υλοποίηση της στοίβας με πίνακα Ώθηση top ← top + 1 Stack[top] ← νέοΣτοιχείο Απώθηση Εξαγωγή του Stack[top] top ← top - 1 Πού βρίσκουν εφαρμογή οι στοίβες; Στα υποπρογράμματα (10 ο κεφ), στο back κουμπί των πλοηγητών, στο undo, …

2 Εισαγωγή Εξαγωγή 3.5 Ουρά (queue) (μόνο θεωρία) Η ουρά είναι μια δομή δεδομένων, στην οποία το στοιχείο που εισάγεται πρώτο, εξάγεται πρώτο. (Fist In First Out) Εισαγωγή– Υπάρχει χώρος; Εξαγωγή– Υπάρχει στοιχείο; Υλοποίηση της ουράς με πίνακα Εισαγωγή rear ← rear + 1 Queue[rear] ← νέοΣτοιχείο Εξαγωγή Εξαγωγή του Queue[front] front ← front + 1 Πού βρίσκουν εφαρμογή οι ουρές; Στους εκτυπωτές, στους webservers, στα multitasking λειτουργικά συστήματα

3 3.6 Αναζήτηση σε μονοδιάστατο πίνακα Σειριακή (sequential) ή γραμμική (linear)μέθοδος 1 η εκδοχή Απαράδεκτη μέθοδος διότι ακόμα και αν βρει το key στο 1 ο κελί, συνεχίζει την αναζήτηση μέχρι το τελευταίο στοιχείο του πίνακα! 2 η εκδοχή Στον προγραμματισμό δεν μας ενδιαφέρει μόνο να δώσουμε αλγόριθμο που «δουλεύει», αλλά απαιτούμε να είναι και αποδοτικός (efficient)!

4 3.6 Αναζήτηση σε μονοδιάστατο πίνακα Σειριακή (sequential) ή γραμμική (linear)μέθοδος Ο αλγόριθμος δουλεύει για πίνακες ακεραίων, πραγματικών ή χαρακτήρων; 3 η εκδοχή Μπορώ να αποφύγω τη χρήση της έξτρα μεταβλητής pos; 4 η εκδοχή Αν το key υπάρχει πολλές φορές μέσα στον πίνακα;

5 3.6 Αναζήτηση σε μονοδιάστατο πίνακα Σειριακή (sequential) ή γραμμική (linear)μέθοδος Γιατί ο αλγόριθμος της σειριακής αναζήτησης δεν δουλεύει αποδοτικά για ταξινομημένους πίνακες; Δεν δουλεύει αποδοτικά, διότι αν το key δεν υπάρχει μέσα στον πίνακα, ο αλγόριθμός μας θα ψάξει μέχρι και το τελευταίο κελί, μην αξιοποιώντας έτσι την ιδιότητα του ταξινομημένου πίνακα!!! Π.χ. αν ψάχνω τον 22, έχει νόημα να ψάχνω ακόμα όταν συναντήσω τον 28; Μπορώ να τροποποιήσω τον αλγόριθμό μου ώστε να δουλεύει αποδοτικά και στους ταξινομημένους; Π.χ. αν ψάχνει τον 22, να σταματά την αναζήτηση όταν βρει τον 28; Ο αλγόριθμος της σειριακής αναζήτησης είναι ο απλούστερος αλλά ο λιγότερο αποδοτικός αλγόριθμος. Οπότε, ενδείκνυται μόνο στις περιπτώσεις όπου  Ο πίνακας είναι μη ταξινομημένος  Ο πίνακας είναι μικρού μεγέθους  Η αναζήτηση στον πίνακα γίνεται σπάνια

6 3.7 Ταξινόμηση/διάταξη μονοδιάστατου πίνακα Γιατί να ταξινομήσω μια δομή δεδομένων; Για να επιταχύνω την εύρεση ενός στοιχείου Για να εντοπίσω τα x μικρότερα ή μεγαλύτερα στοιχεία του πίνακα Δοθέντων των στοιχείων α 1, α 2, α 3, …, α ν η ταξινόμηση των στοιχείων συνίσταται στη μετάθεση της θέσης των στοιχείων, ώστε να τοποθετηθούν σε μία σειρά α κ1, α κ2, α κ3,…,α κν έτσι ώστε, δοθείσης μίας συνάρτησης διάταξης, να ισχύει: f(α κ1 ) ≤ f(α κ2 ) ≤ … ≤ f(α κν ) Θα μελετήσουμε τον αλγόριθμο της ευθείας ανταλλαγής ο οποίος είναι ο πιο απλός αλλά και ο πιο αργός αλγόριθμος ταξινόμησης! Ο πλέον γρήγορος αλγόριθμος ταξινόμησης είναι η γρήγορη ταξινόμηση (quick sort)!

7 3.7 Ταξινόμηση/διάταξη μονοδιάστατου πίνακα Ταξινόμηση ευθείας ανταλλαγής/φυσαλίδας Αν και επεξεργάζεται μονοδιάστατο πίνακα, χρειάζεται 2 Για! 1ο2ο3ο4ο5ο6ο7ο8ο

8 3.7 Ταξινόμηση/διάταξη μονοδιάστατου πίνακα Ταξινόμηση ευθείας ανταλλαγής/φυσαλίδας Συγκρίνονται ζεύγη αριθμών και, αν χρειαστεί, αντιμετατίθενται ώστε ο μεγαλύτερος να βρεθεί στο 2 ο κελί Όταν τελειώνει μια σάρωση του πίνακα, το μεγαλύτερο στοιχείο οδηγείται στο τέλος Όταν ένας αριθμός τοποθετηθεί στο τέλος, τα κελιά αυτά κλειδώνουν και δεν συμμετέχουν στις επόμενες συγκρίσεις ζευγαριών


Κατέβασμα ppt "3.4 Στοίβα (stack) (μόνο θεωρία) Η στοίβα είναι μια δομή δεδομένων, στην οποία το στοιχείο που εισάγεται τελευταίο, εξάγεται πρώτο. (Last In First Out)"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google