Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 2 : Αλγόριθμοι. Δρ. Γκόγκος Χρήστος

Σχετικά έγγραφα
Πληροφορική 2. Αλγόριθμοι

Πληροφορική II. Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι. τύποι δεδομένων. Δρ. Γκόγκος Χρήστος

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 3 : Γλώσσες προγραμματισμού. Δρ.

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 6 : Δομές αρχείων. Δρ. Γκόγκος Χρήστος

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 4 : Πράξεις με bits. Δρ. Γκόγκος Χρήστος

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 9 : Τεχνητή νοημοσύνη. Δρ. Γκόγκος Χρήστος

Εισαγωγή στην πληροφορική

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 3 : Αναπαράσταση αριθμών στο δυαδικό σύστημα. Δρ.

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι

Πληροφορική ΙΙ Ενότητα 1

Ηλεκτρονικοί Υπολογιστές

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 10 : Ασφάλεια. Δρ. Γκόγκος Χρήστος

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 4 : Τεχνολογία λογισμικού. Δρ.

Προγραμματισμός Η/Υ. Αλγόριθμοι. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Η/Υ. Ενότητα 5: Εντολές Επανάληψης

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 10 : Πολυμέσα και Πληροφοριακά Συστήματα. Δρ.

Αρχιτεκτονική υπολογιστών

Προγραμματισμός και Εφαρμογές Υπολογιστών

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Εντολές for, while, do-while Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Αρχιτεκτονική υπολογιστών

Αντικειμενοστραφής Προγραμματισμός

Λειτουργικά Συστήματα

Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 1 : Σύνολα & Σχέσεις (1/2) Αλέξανδρος Τζάλλας

Προγραμματισμός Διαδικτύου

Εισαγωγή στον δομημένο προγραμματισμό

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Εφαρμογή Υπολογιστικών Τεχνικών στην Γεωργία

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 11 : Ο αλγόριθμος PageRank της Google. Δρ.

Προγραμματισμός Η/Υ. 6 η ενότητα: Συναρτήσεις. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

ΔΡΔ: Διαγράμματα Ροής Δεδομένων

Δομημένος Προγραμματισμός

Προγραμματισμός Η/Υ. Συναρτήσεις & Υποπρογράμματα. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Αρχιτεκτονική υπολογιστών

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Προγραμματισμός Η/Υ. 8 η ενότητα: Περιβαλλοντικά και μαθηματικά προβλήματα. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων

Εισαγωγή στους Αλγορίθμους

Διοικητική των επιχειρήσεων

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Αναζήτηση και ταξινόμηση

Εισαγωγή στην επιστήμη των Υπολογιστών & Τηλεπικοινωνιών

Αντικειμενοστραφής Προγραμματισμός

Αντικειμενοστραφής Προγραμματισμός

Εισαγωγή στον Προγραμματισμό με C++

Προγραμματισμός Η/Υ. Ενότητα 4: Εντολές Επιλογής

Προγραμματισμός Διαδικτύου

Διοικητική των επιχειρήσεων

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 7 : Βάσεις Δεδομένων (1/2) Δρ.

Εισαγωγή στους Αλγορίθμους

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

Προγραμματισμός και Εφαρμογές Υπολογιστών

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 6 : Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Δρ.

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

Προγραμματισμός Διαδικτύου

Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 11 : Γραμματικές χωρίς συμφραζόμενα. Αλέξανδρος Τζάλλας

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 10 : Κατασκευή ΝΠΑ. Αλέξανδρος Τζάλλας

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Προγραμματισμός και Εφαρμογές Υπολογιστών

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Διδακτική της Πληροφορικής

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

Τεχνικές Προγραμματισμού και Χρήση Λογισμικού Η/Υ στις Κατασκευές

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δείκτες Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Προγραμματισμός Διαδικτύου

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Μικροοικονομική. Ενότητα 11 : Κόστος παραγωγής Καραμάνης Κωνσταντίνος

Ηλεκτρονικοί Υπολογιστές

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική Ι. Ενότητα 9 : Συμπίεση δεδομένων. Δρ. Γκόγκος Χρήστος

Προγραµµατισµός Η/Υ. Μέρος2

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Ιστορία της μετάφρασης

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Δομές Δεδομένων Ενότητα 2

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος

Δομημένος Προγραμματισμός

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

Ανατομία - Φυσιολογία Ακοής Ομιλίας Λόγου

Εισαγωγή στην Πληροφορική

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Συναρτήσεις II Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 6: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ: ΠΡΟΒΛΗΜΑ ΑΝΑΖΗΤΗΣΗΣ

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

Προγραμματισμός Η/Υ. Αναζήτηση & Ταξινόμηση. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Βάσεις Δεδομένων. Ενότητα 1: Εισαγωγή στις Βάσεις δεδομένων. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Αντικειμενοστρεφής Προγραμματισμός Ενότητα 9: Ειδικά θέματα γλώσσας C/C++. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση

Πληροφορική ΙΙ Θεματική Ενότητα 5

Πληροφορική ΙΙ Θεματική Ενότητα 7

Transcript:

1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Πληροφορική II Ενότητα 2 : Αλγόριθμοι Δρ. Γκόγκος Χρήστος

2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Χρηματοοικονομικής & Ελεγκτικής (Παράρτημα Πρέβεζας) Πληροφορική ΙI Ενότητα 2 : Αλγόριθμοι Δρ. Γκόγκος Χρήστος Επίκουρος Καθηγητής Άρτα, 2015

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 3 3

Χρηματοδότηση Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο TEI Ηπείρου» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. 4 4

Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται μια είσοδο, ακολουθεί η επεξεργασία της εισόδου και παράγει μια έξοδο. ΠΕΠΕΡΑΣΜΕΝΟ = ΌΧΙ ΑΠΕΙΡΟ 5 5

Παράδειγμα αλγορίθμου Θέλουμε να κατασκευάσουμε έναν αλγόριθμο για την εύρεση του μεγαλύτερου ακεραίου από μια λίστα θετικών ακεραίων. Ο αλγόριθμος θα πρέπει να μπορεί να βρίσκει τον μεγαλύτερο ακέραιο από μια λίστα ακεραίων οποιουδήποτε μεγέθους (5, 1.000, 10.000, 1.000.000 κ.λπ.) Ο αλγόριθμος πρέπει να είναι γενικός και να μην εξαρτάται από το πλήθος των ακεραίων. Ο αλγόριθμος δέχεται ως είσοδο μια λίστα από Ν ακεραίους. Βήμα 1. Ο αλγόριθμος ορίζει ένα στοιχείο δεδομένων με όνομα ΜΕΓΙΣΤΟΣ και του δίνει ως τιμή τον πρώτο ακέραιο της λίστας Βήμα 2. Αν ο επόμενος ακέραιος είναι μεγαλύτερος από την τιμή που υπάρχει στο ΜΕΓΙΣΤΟΣ όρισε τον ως νέα τιμή του ΜΕΓΙΣΤΟΣ Βήμα 3. Αν η λίστα των ακεραίων έχει και άλλα στοιχεία πήγαινε στο Βήμα 2 Βήμα 4. Παρουσίασε ως έξοδο την τιμή του ΜΕΓΙΣΤΟΣ 6 6

Αριθμητικό παράδειγμα ΛΙΣΤΑ ΤΙΜΩΝ {13, 6, 17, 14, 15} ΜΕΓΙΣΤΟΣ = 13 6 > ΜΕΓΙΣΤΟΣ ΌΧΙ 17 > ΜΕΓΙΣΤΟΣ ΝΑΙ ΜΕΓΙΣΤΟΣ = 17 14 > ΜΕΓΙΣΤΟΣ ΌΧΙ 15 > ΜΕΓΙΣΤΟΣ ΌΧΙ Συνεπώς ΜΕΓΙΣΤΟΣ = 17 7 7

Βασικές αλγοριθμικές δομές Δομή ακολουθίας (sequence) Οι εντολές εκτελούνται στην σειρά η μια μετά την άλλη. Για να εκτελεστεί μια εντολή θα πρέπει να έχει ολοκληρωθεί η εκτέλεση της προηγούμενης. Δομή απόφασης (selection) Αφορά περιπτώσεις που ελέγχεται μια συνθήκη. Αν το αποτέλεσμα του ελέγχου είναι η τιμή αληθής τότε εκτελείται μια ακολουθία εντολών ενώ αν είναι ψευδής εκτελείται μια διαφορετική ακολουθία εντολών. Δομή επανάληψης (repetition) Επιτρέπει την επανάληψη της ίδιας ακολουθίας εντολών. 8 8

Δομή ακολουθίας Οι εντολές εκτελούνται στην σειρά η μια μετά την άλλη Για να εκτελεστεί μια εντολή θα πρέπει να έχει ολοκληρωθεί η εκτέλεση της προηγούμενης Χρησιμοποιείται στην λύση απλών προβλημάτων Ενέργεια 1 Ενέργεια 2 Ενέργεια Ν 9 9

Δομή απόφασης Αφορά περιπτώσεις που ελέγχεται μια συνθήκη Αν το αποτέλεσμα του ελέγχου είναι η τιμή αληθής (true) τότε εκτελείται μια ακολουθία εντολών ενώ αν είναι ψευδής (false) εκτελείται μια διαφορετική ακολουθία εντολών Αν συνθήκη τότε Αλλιώς Τέλος_αν σειρά ενεργειών 1 σειρά ενεργειών 2 Συνθήκη είναι μια λογική έκφραση που μπορεί να είναι είτε αληθής είτε ψευδής (π.χ. ταχύτητα > 60) 10 1

Δομή επανάληψης Επιτρέπει την επανάληψη της ίδιας ακολουθίας εντολών Η δομή επανάληψης ονομάζεται και βρόχος επανάληψης (loop) Όσο συνθήκη επανάλαβε σειρά ενεργειών Τέλος_επανάληψης 11 1

Τρόποι αναπαράστασης αλγορίθμων Διάγραμμα Ροής (flowchart) Είναι μια σχηματική παράσταση ενός αλγορίθμου. Δεν περιέχει τις λεπτομέρειες του αλγορίθμου αλλά προσπαθεί να δώσει την γενική ιδέα του. Ψευδοκώδικας (pseudo code) Είναι μια αναπαράσταση ενός αλγορίθμου σε φυσική γλώσσα. Αν και δεν υπάρχει κάποιο πρότυπο για τον ψευδοκώδικα σε γενικές γραμμές θυμίζει την σύνταξη μιας πραγματικής γλώσσας προγραμματισμού όπως η PASCAL. Κωδικοποίηση (coding) Αφορά την αναπαράσταση ενός αλγορίθμου σε μια πραγματική γλώσσα προγραμματισμού όπως η C, η Java, η Basic κοκ τηρώντας όλους τους συντακτικούς κανόνες που επιβάλει η γλώσσα. 12 1

Παράδειγμα διαγράμματος ροής Παράδειγμα άθροισης μιας ακολουθίας αριθμών 13 1

Ψευδοκώδικας Μεταβλητή: Ποσότητα που η τιμή της μπορεί να μεταβάλλεται Εκχώρηση: Αναθέτει το αποτέλεσμα μιας έκφρασης σε μια μεταβλητή X 2+3 Εντολή εισόδου: Δέχεται μια τιμή από τον χρήστη Διάβασε x Εντολή εξόδου: Εμφανίζει ένα αποτέλεσμα στην μονάδα εξόδου (οθόνη, εκτυπωτής κ.α.) Εμφάνισε x 14 1

Παράδειγμα ψευδοκώδικα Αλγόριθμος Άθροισμα sum 0 k 1 Όσο k <= 10 επανάλαβε Διάβασε x sum sum + x k k + 1 Τέλος_επανάληψης Εμφάνισε sum Τέλος Άθροισμα Παράδειγμα άθροισης δέκα τιμών που εισάγονται από τον χρήστη 15 1

Παράδειγμα κωδικοποίησης σε γλώσσα C++ #include <iostream> #include <cstdlib> using namespace std; int main() { int sum, k, x; sum=0; k=1; while (k<=10) { } cin >> x; sum = sum + x; k = k + 1; cout << "RESULT" << sum; system("pause"); return 0; } Παράδειγμα άθροισης δέκα τιμών που εισάγονται από το χρήστη 16 1

Αντιμετάθεση μεταβλητών (swap) Λανθασμένη αντιμετάθεση Διάβασε α, β α β; β α; Εμφάνισε α, β Λάθος οι τιμές των α και β στο τέλος θα είναι ίδιες Έστω ότι ο χρήστης δίνει στο α την τιμή 5 και στο β την τιμή 10 α β 5 10 10 ------------------ Άρα οι τιμές και των 2 μεταβλητών όταν εκτελεστούν οι εντολές είναι 10 17 1

Αντιμετάθεση μεταβλητών (swap) Σωστή αντιμετάθεση με την χρήση βοηθητικής μεταβλητής Διάβασε α, β t α; α β; β t; Εμφάνισε α, β α 1 2 t 3 β 18 1

Παράδειγμα 1 (Δομή ακολουθίας) Αλγόριθμος που υπολογίζει το άθροισμα 2 ακεραίων Αλγόριθμος Θ1 Διάβασε α, β γ α+β Εμφάνισε γ Τέλος Θ1 19 1

Παράδειγμα 2 (Δομή απόφασης) Αλγόριθμος που βρίσκει τη μεγαλύτερη ανάμεσα σε τιμές που δίνει ο χρήστης Αλγόριθμος Θ2 Διάβασε βαθμός Αν βαθμός >=5 τότε Αλλιώς Τέλος_αν Τέλος Θ2 Εμφάνισε Προάγεται Εμφάνισε Απορρίπτεται 20 2

Παράδειγμα 3 (Δομή επανάληψης) Αλγόριθμος που βρίσκει τη μεγαλύτερη ανάμεσα σε τιμές που δίνει ο χρήστης Αλγόριθμος Θ3 Διάβασε x max x Όσο x<>0 επανάλαβε Αν x>max τότε max x Τέλος_αν Διάβασε x Τέλος_επανάληψης Εμφάνισε max Τέλος Θ3 21 2

Άθροιση Γινόμενο Ελάχιστο και μέγιστο Ταξινόμηση Αναζήτηση Βασικοί αλγόριθμοι 22 2

Ακολουθιακή αναζήτηση Αναζήτηση είναι η διαδικασία εντοπισμού της θέσης ενός στοιχείου σε μια λίστα στοιχείων Η ακολουθιακή αναζήτηση εφαρμόζεται όταν η λίστα είναι ταξινομημένη Εξετάζει όλα τα στοιχεία ένα προς ένα μέχρι να βρεθεί το στοιχείο που ψάχνουμε ή να φτάσουμε στο τέλος της λίστας Δεν είναι αποδοτικός τρόπος αναζήτησης 23 2

Δυαδική αναζήτηση Απαιτεί η λίστα να είναι ταξινομημένη Είναι αποδοτικός τρόπος αναζήτησης Ελέγχει το μεσαίο στοιχείο της ταξινομημένης λίστας Εντοπίζει αν ο στόχος είναι στο δεξί μισό ή στο αριστερό μισό Απορρίπτει το μισό στο οποίο δεν μπορεί να βρίσκεται ο στόχος Επαναλαμβάνει την διαδικασία για το τμήμα που μένει 24 2

Ταξινόμηση φυσαλίδας (bubble sort) Η λίστα διαιρείται σε 2 υπόλίστες (ταξινομημένη αριστερά και αταξινόμητη δεξιά) Γίνονται συγκρίσεις διαδοχικών στοιχείων από το τέλος προς την αρχή και αντιμετάθεση στοιχείων αν δεν είναι στην σωστή σειρά Το μικρότερο στοιχείο της αταξινόμητης υπό-λίστας αναδύεται προς τα αριστερά Είσοδος: 25,13,8,17,9 25,13,8,17,9 25,13,8,9,17 25,13,8,9,17 25,8,13,9,17 8, 25,13,9,17 8, 25,13,9,17 8, 25,9,13,17 8,9, 25,13,17 8,9, 25,13,17 8,9,13, 25,17 8,9,13,25,17 25 2

Ταξινόμηση με επιλογή (selection sort) Η λίστα διαιρείται σε 2 υπό-λίστες (ταξινομημένη αριστερά και αταξινόμητη δεξιά) Θεωρούμε ότι οι δύο λίστες χωρίζονται από ένα φανταστικό τείχος Βρίσκουμε το μικρότερο στοιχείο της αταξινόμητης λίστας και το τοποθετούμε στην αρχή των αταξινόμητων δεδομένων. Το στοιχείο που αντικαθιστά παίρνει την θέση που είχε το μικρότερο στοιχείο. Επεκτείνουμε την ταξινομημένη λίστα κατά ένα στοιχείο προς τα δεξιά Είσοδος: 25,33,18,17,11,23 25,33,18,17,11,23 11,33,18,17,25,23 11, 33,18,17,25,23 11, 17,18,33,25,23 11,17, 18,33,25,23 11,17, 18,33,25,23 11,17,18, 33,25,23 11,17,18, 23,25,33 11,17,18,23, 25,33 11,17,18,23, 25,33 11,17,18,23,25, 33 11,17,18,23,25, 33 11,17,18,23,25,33 26 2

Ταξινόμηση με εισαγωγή Η λίστα διαιρείται σε 2 υπό-λίστες (ταξινομημένη αριστερά και αταξινόμητη δεξιά) Επιλέγεται το πρώτο στοιχείο της αταξινόμητης λίστας και τοποθετείται στην σωστή θέση στην ταξινομημένη λίστα μετακινώντας όσα στοιχεία χρειαστεί προς τα δεξιά Είσοδος: 25,13,8,17,9 25,13,8,17,9 Επιλογή του 25 25, 13,8,17,9 Επιλογή του 13 13,25, 8,17,9 Επιλογή του 8 8,13,25, 17,9 Επιλογή του 17 8,13,17,25, 9 Επιλογή του 9 8,13,17,25,9 27 2

Ένας αλγόριθμος μπορεί να χωριστεί σε μικρότερες μονάδες που ονομάζονται υποαλγόριθμοι Το ίδιο ισχύει και για τους υποαλγόριθμους Υποαλγόριθμοι Πλεονεκτήματα υποαλγορίθμων Ευκολότερη κατανόηση αλγορίθμου Συντομότερη ανάπτυξη αλγορίθμου 28 2

Δομημένος προγραμματισμός Ο δομημένος προγραμματισμός ορίζει ότι ένας αλγόριθμος θα πρέπει να χωρίζεται σε μικρότερες υπομονάδες που ονομάζονται υποπρογράμματα. Κάθε υποπρόγραμμα με την σειρά του διαιρείται σε μικρότερα υποπρογράμματα μέχρι τα υποπρογράμματα να γίνουν στοιχειώδη και συνεπώς εύκολα υλοποιήσιμα ΚΥΡΙΟ ΠΡΟΓΡΑΜΜΑ ΥΠΟΠΡΟΓΡΑΜΜΑ 29 2

Αναδρομή (recursion) Αναδρομή ονομάζεται η διαδικασία κατά την οποία ένας αλγόριθμος καλεί τον εαυτό του Οι αναδρομικοί αλγόριθμοι συνήθως λύνουν «κομψά» ένα πρόβλημα Παραγοντικό του n (συμβολίζεται n!) Αν το n=0 τότε είναι 1 Αν το n>0 τότε είναι n*(n-1)*(n-2)* *3*2*1 Υπολογισμός παραγοντικού του n αναδρομικά: Παραγοντικό του n Αν το n=0 τότε Αλλιώς επέστρεψε 1 πολλαπλασίασε το n με το παραγοντικό του n-1 Τέλος_αν π.χ. 5! = 5*4*3*2*1=120 30 3

Βιβλιογραφία 1. Forouzan B., Mosharaf F. Εισαγωγή στην επιστήμη των υπολογιστών. Εκδόσεις Κλειδάριθμος (2010) 2. Σταυρακούδης Α. Εισαγωγή στις υπολογιστικές μεθόδους για τις οικονομικές και επιχειρησιακές σπουδές. Κλειδάριθμος (2012) 3. Ταμπακάς Β. Εισαγωγής τις βάσεις δεδομένων. Εκδότης Β. Ταμπακάς (2009) 4. Γιαννακουδάκης Ε. Σχεδιασμός και διαχείριση Βάσεων Δεδομένων. Εκδόσεις Ευγενία Σ. Μπένου (2009). 5. Biermann A. Σπουδαίες ιδέες στην επιστήμη των υπολογιστών. Πανεπιστημιακές εκδόσεις Κρήτης (2008). 6. Brookshear J.G. Η επιστήμη των υπολογιστών, μια ολοκληρωμένη παρουσίαση. Εκδόσεις Κλειδάριθμος (2009). 7. Πληροφοριακά συστήματα επιχειρήσεων II. Πολλάλης, Γιαννακόπουλος, Δημόπουλος. Εκδόσεις Σταμούλη (2004). 31 3

3 32 Σημείωμα Αναφοράς Copyright Τεχνολογικό Ίδρυμα Ηπείρου. Δρ. Γκόγκος Χρήστος. Πληροφορική ΙI. Έκδοση: 1.0 Άρτα, 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: http://eclass.teiep.gr/openclass/courses/acc137/

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά Δημιουργού-Μη Εμπορική Χρήση-Όχι Παράγωγα Έργα 4.0 Διεθνές [1] ή μεταγενέστερη. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, Διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. [1] http://creativecommons.org/licenses/by-nc-nd/4.0/deed.el 33 3

Τέλος Ενότητας Επεξεργασία: Ευάγγελος Καρβούνης Άρτα, 2015 34 3

3 Τέλος Ενότητας Αλγόριθμοι