Εισαγωγή στην επιστήμη των υπολογιστών

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
3.4 Στοίβα (stack) (μόνο θεωρία)
Advertisements

Παράδειγμα 2: Φοίτηση στο πανεπιστήμιο Εκφώνηση: Ζητάμε το έτος κάθε φοιτητή κάποιου τμήματος κάποιας σχολής που έχει διαφορετικό αριθμό φοιτητών ανά έτος,
Παράδειγμα 1:Σειριακή αναζήτηση
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Γεωργαλλίδης Δημήτρης Καθηγητής Πληροφορικής
ΔΙΔΑΚΤΙΚΕΣ ΔΥΣΚΟΛΙΕΣ ΣΤΟΥΣ ΠΙΝΑΚΕΣ ΠΕΚ ΠΕΙΡΑΙΑ Α΄φάση Επιμόρφωσης Εκπ/κών κλάδου ΠΕ19 Διδακτική της Πληροφορικής Ρόδος, Νοέμβρης 2007.
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
Κυριακή 30 Σεπτεμβρίου 2007 Βεύη Φλώρινας Βεύη Φλώρινας 2η ΣΥΝΑΝΤΗΣΗ ΚΑΘΗΓΗΤΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ2η ΣΥΝΑΝΤΗΣΗ ΚΑΘΗΓΗΤΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΥΤΙΚΗΣ.
Αλγόριθμοι Ταξινόμησης
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
Διαίρει-και-Βασίλευε
Δυναμική Διατήρηση Γραμμικής Διάταξης Διατηρεί μια γραμμική διάταξη δυναμικά μεταβαλλόμενης συλλογής στοιχείων. Υποστηρίζει τις λειτουργίες: Έλεγχος της.
Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ» Β΄ τάξης Γενικού Λυκείου
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Χειριζόμαστε ένα σύνολο στοιχείων όπου το κάθε.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Πέμπτη, 2 Απριλίου 2015Τμ. Πληροφορικής,
Μαθηματική Επαγωγή Mathematical induction
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Οδηγίες συμπλήρωσης της ηλεκτρονικής αίτησης για το πρόγραμμα Teachers 4 Europe
Λεξικό, Union – Find Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Τετάρτη, 15 Απριλίου 2015Τετάρτη, 15 Απριλίου 2015Τετάρτη, 15 Απριλίου 2015Τετάρτη, 15 Απριλίου 2015Τμ.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων.
ΑΕΠΠ 3ο Κεφάλαιο Γεωργαλλίδης Δημήτρης Καθηγητής Πληροφορικής 1 Ο Λύκειο Ρόδου.
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ §3.7 ΤΑΞΙΝΟΜΗΣΗ
 Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον:  Τεχνικές Διδασκαλίας.
Ταξινόμηση - Sorting.
Διάλεξη 14: Εισαγωγή στη ροή ρευστών
Συνδετικότητα γραφήματος (graph connectivity). α β Υπάρχει μονοπάτι μεταξύ α και β; Παραδείγματα: υπολογιστές ενός δικτύου ιστοσελίδες ισοδύναμες μεταβλητές.
Αναζήτηση σε πίνακα Αναζήτηση σε πίνακα που περιέχει ακέραιους αριθμούς.
Τα μουσικά φθογγόσημα (τέταρτα-όγδοα-μισό) Τάξη: Γ’ Δημοτικού Ανδρέας Σκιαδάς.
ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ. Δυαδική αναζήτηση (Binary search) ΔΕΔΟΜΕΝΟ: ένα μεγάλο αρχείο που περιέχει τιμές z [0,1,…,n-1] ταξινομημένες.
ΣΗΜΑΤΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ II Καθ. Πέτρος Π. Γρουμπός Διάλεξη 8η Στοχαστικά Σήματα - 1.
Υπότιτλος Διάταξη τίτλου με εικόνες. Διάταξη τίτλου και περιεχομένου με λίστα Προσθέστε την πρώτη κουκκίδα εδώ Προσθέστε τη δεύτερη κουκκίδα εδώ Προσθέστε.
Δυναμικός Κατακερματισμός
Δένδρα Δένδρο είναι ένα συνεκτικό άκυκλο γράφημα. Δένδρο Δένδρο Δένδρο
Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι
Διδάσκων: Δρ. Τσίντζα Παναγιώτα
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
ΕΔΡΑΝΑ Διαμόρφωση – Στερέωση εδράνου
Χρωματισμός κορυφών -Χρωματισμός χαρτών
Διάταξη τίτλου Υπότιτλος.
Κανονικοπηση(normalization)
Διάταξη τίτλου Υπότιτλος.
Διάταξη τίτλου Υπότιτλος.
Επιστήμη των Υπολογιστών
Σειριακή ή Γραμμική Αναζήτηση 1.Μοναδικό Κλειδί (key)
Η τακτοποίηση των κόμβων μίας δομής με μία ιδιαίτερη σειρά είναι μία πολύ σημαντική λειτουργία που ονομάζεται ταξινόμηση (sorting) ή διάταξη (ordering).
ΑΛΓΟΡΙΘΜΟΣ.
Διάταξη τίτλου Υπότιτλος.
Διάταξη τίτλου Υπότιτλος.
Διάταξη τίτλου Υπότιτλος.
Διάταξη τίτλου Υπότιτλος.
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
Φοιτητής: Τσακίρης Αλέξανδρος Επιβλέπων: Ευάγγελος Ούτσιος
Διάταξη τίτλου Υπότιτλος.
Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ
Ερωτήματα Επιλογής σε ACCESS
Υπότιτλος Διάταξη τίτλου.
Υπότιτλος ΔΙΑΤΑΞΗ ΤΙΤΛΟΥ.
Διάταξη τίτλου Υπότιτλος.
Δυναμικός Κατακερματισμός
Διάταξη τίτλου Υπότιτλος.
Διάταξη τίτλου Υπότιτλος.
Διάταξη τίτλου Υπότιτλος.
Διάταξη τίτλου Υπότιτλος.
Διάταξη τίτλου Υπότιτλος.
Διάταξη τίτλου Υπότιτλος.
Διάταξη τίτλου Υπότιτλος.
Διάταξη τίτλου Υπότιτλος.
Διάταξη τίτλου Υπότιτλος.
ΔΙΑΤΑΞΗ ΤΙΤΛΟΥ Υπότιτλος.
Μεταγράφημα παρουσίασης:

Εισαγωγή στην επιστήμη των υπολογιστών Σειριακή και Δυαδική Αναζήτηση

Οι αλγόριθμοι της σειριακής και της δυαδικής αναζήτησης χρησιμοποιούνται για την επίλυση προβλημάτων εύρεσης μιας τιμής σε μια λίστα (πχ. Λίστα με τρόφιμα, μαθητές...κλπ)

Ι. Αναζήτηση συγκεκριμένης τιμή σε λίστα ταξινομημένη σε φθίνουσα σειρά με τη μέθοδο της σειριακής αναζήτησης

Δίνεται η παρακάτω ταξινομημένη σε φθίνουσα σειρά λίστα Δίνεται η παρακάτω ταξινομημένη σε φθίνουσα σειρά λίστα. Ζητούμε να βρούμε αν υπάρχει στα στοιχεία της ο αριθμός 5. 11 10 8 4 2 11 10 8 4 2 Ξεκινάμε την αναζήτηση από το πρώτο στοιχείο του πίνακα. Παρατηρούμε ότι το πρώτο στοιχείο , δηλαδή το 11 είναι μεγαλύτερο και διαφορετικό από το 5. Επομένως συνεχίζουμε την αναζήτηση στο επόμενο στοιχείο του πίνακα. 11 10 8 4 2 Τώρα παρατηρούμε ότι το δεύτερο στοιχείο του πίνακα , δηλαδή το 10 είναι επίσης μεγαλύτερο και διαφορετικό από το 5. Επομένως συνεχίζουμε την αναζήτηση στο επόμενο στοιχείο του πίνακα. 11 10 8 4 2 Τώρα παρατηρούμε ότι το τρίτο στοιχείο του πίνακα , δηλαδή το 8 είναι επίσης μεγαλύτερο και διαφορετικό από το 5. Επομένως συνεχίζουμε την αναζήτηση στο επόμενο στοιχείο του πίνακα. 11 10 8 4 2 Άρα η αναζήτηση στην περίπτωση αυτή ήταν ανεπιτυχής. Στην περίπτωση αυτή το τέταρτο στοιχείο του πίνακα , δηλαδή το 4 είναι μικρότερο από το 5. Επομένως δεν χρειάζεται να συνεχίσουμε την αναζήτηση , αφού τα επόμενα στοιχεία του πίνακα θα είναι μικρότερα από το 5.

ΙΙ. Αναζήτηση συγκεκριμένης τιμή σε λίστα ταξινομημένη σε αύξουσα σειρά με τη μέθοδο της σειριακής αναζήτησης

Δίνεται ο παρακάτω ταξινομημένος σε αύξουσα σειρά πίνακας Δίνεται ο παρακάτω ταξινομημένος σε αύξουσα σειρά πίνακας. Ζητούμε να βρούμε αν υπάρχει στα στοιχεία του ο αριθμός 5. 2 4 8 10 11 2 4 8 10 11 Ξεκινάμε την αναζήτηση από το πρώτο στοιχείο του πίνακα. Παρατηρούμε ότι το πρώτο στοιχείο , δηλαδή το 2 είναι μικρότερο και διαφορετικό από το 5. Επομένως συνεχίζουμε την αναζήτηση στο επόμενο στοιχείο του πίνακα. 2 4 8 10 11 Τώρα παρατηρούμε ότι το δεύτερο στοιχείο του πίνακα , δηλαδή το 4 είναι επίσης μικρότερο και διαφορετικό από το 5. Επομένως συνεχίζουμε την αναζήτηση στο επόμενο στοιχείο του πίνακα. 2 4 8 10 11 Άρα η αναζήτηση στην περίπτωση αυτή ήταν ανεπιτυχής. Στην περίπτωση αυτή το τρίτο στοιχείο του πίνακα , δηλαδή το 8 είναι μεγαλύτερο από το 5. Επομένως δεν χρειάζεται να συνεχίσουμε την αναζήτηση , αφού τα επόμενα στοιχεία του πίνακα θα είναι μεγαλύτερα από το 5.

ΙΙΙ. Αλγόριθμος σειριακής αναζήτησης σε μη ταξινομημένο πίνακα με τη μέθοδο της σειριακής αναζήτησης

Όσο done=ψευδής Και i<=n επανάλαβε Στην αρχή τοποθετούμε το τμήμα δηλώσεων των μεταβλητών του προγράμματος Αλγόριθμος Σειριακής_αναζήτησης Μεταβλητές Πραγματικές: table[100], key Ακέραιες: n, position, i Λογικές: done Αρχή Στην συνέχεια εισάγουμε τα δεδομένα που χρειάζονται για την υλοποίηση του αλγορίθμου. Διάβασε n, key Για i από 1 μέχρι n Διάβασε table[i] Τέλος_επανάληψης Στο βήμα αυτό γίνονται οι απαραίτητες αρχικοποιήσεις ορισμένων μεταβλητών. done <- ψευδής position <- 0 i<-1 Στο σημείο αυτό το τοποθετούμε την συνθήκη της επαναληπτικής δομής που θα χρησιμοποιήσουμε. Όσο done=ψευδής Και i<=n επανάλαβε Αν table[i]=key τότε done <- αληθής position <- i Ελέγχουμε μέσα στην επανάληψη ποιο από τα στοιχεία του πίνακα που έχουμε εισάγει είναι ίδιο με το key. Αν βρεθεί τέτοιο στοιχείο , τότε σημειώνουμε τη θέση του στο πίνακα. Αλλιώς i<-i+1 Τέλος_αν Τέλος_επανάληψης Αν το τρέχον στοιχείο του πίνακα δεν είναι ίδιο με το key , τότε θα αυξάνεται ο μετρητής I κατά 1, ώστε να ελέγξουμε το επόμενο στοιχείο. Εμφάνισε position Τέλος Σειριακής_αναζήτησης Τέλος εκτυπώνεται η θέση του πίνακα που βρέθηκε το αναζητούμενο στοιχείο.

Ο αλγόριθμος της δυαδικής αναζήτησης χρησιμοποιεί στη διαδικασία αναζήτησης μια μεθοδολογία «διαίρει και βασίλευε» Αναζήτηση ονόματος σε ταξινομημένο κατάλογο Αναζήτηση λέξης σε λεξικό

Ι. Αναζήτηση συγκεκριμένης τιμή σε λίστα ταξινομημένη σε αύξουσα σειρά

Δίνεται η παρακάτω ταξινομημένη σε αύξουσα σειρά λίστα Δίνεται η παρακάτω ταξινομημένη σε αύξουσα σειρά λίστα. Ζητούμε να βρούμε αν υπάρχει στα στοιχεία του ο αριθμός 600, με την χρήση της δυαδικής αναζήτησης. 362 420 456 530 565 592 600 633 Ξεκινάμε την αναζήτηση από το μεσαίο στοιχείο της λίστας. Παρατηρούμε ότι το μεσαίο στοιχείο , δηλαδή το 530 είναι μικρότερο από το 600. Επομένως συνεχίζουμε την αναζήτηση σε όλα τα στοιχεία που βρίσκονται μετά το 530, αφού τα υπόλοιπα προφανώς είναι μικρότερα από το 600, συνεχίζοντας με την ίδια λογική. 565 592 600 633 Παρατηρούμε ότι το μεσαίο στοιχείο στην περίπτωση αυτή είναι το 592 που είναι μικρότερο από το 600. Επομένως συνεχίζουμε την αναζήτηση σε όλα τα στοιχεία που βρίσκονται μετά το 592, αφού τα υπόλοιπα προφανώς είναι μικρότερα από το 600, συνεχίζοντας με την ίδια λογική. 600 633 Το μεσαίο στοιχείο στην περίπτωση αυτή είναι το 600 , δηλαδή, το στοιχείο που ψάχνουμε. Επομένως η αναζήτηση είναι επιτυχής και η διαδικασία τερματίζεται εδώ. Επομένως με την χρήση της δυαδικής αναζήτησης χρειάστηκαν 3 συγκρίσεις για να ολοκληρωθεί η διαδικασία.

Όσο Αρχή <= Τέλος Και Σημαία = Ψευδής επανάλαβε Αλγόριθμος Δυαδικής_αναζήτησης Μεταβλητές Ακέραιες: Πίνακας[1000],Πλήθος,i, Κλειδί, Αρχή, Μέση, Τέλος, Θέση Λογικές: Σημαία Αρχή Στην αρχή τοποθετούμε το τμήμα δηλώσεων των μεταβλητών του προγράμματος #include <stdio.h> void main() { int table[1000], n, i, key ; int arxi, mesi, telos, thesi ; scanf(“%d,%d”,&n ,&key); for (i=0; i < n; i++) scanf(“%d”,&table[i]); telos = n-1; arxi = 0; thesi = -1; while (arxi <= telos) mesi = (arxi+telos)/2; if ( table[mesi] == key) thesi = mesi; break; } else if ( key < table[mesi] ) telos = mesi -1; arxi = mesi +1; if (thesi != 0) printf(“%d”,thesi); printf(“Anepityxhs Anazhthsh”); Στην συνέχεια εισάγουμε τα δεδομένα που χρειάζονται για την υλοποίηση του αλγορίθμου. Διάβασε Πλήθος, Κλειδί Για i από 1 μέχρι Πλήθος Διάβασε Πίνακας[i] Τέλος_επανάληψης Σημαία <- ψευδής Τέλος <- Πλήθος Αρχή <- 1 Θέση <- 0 Στο βήμα αυτό γίνονται οι απαραίτητες αρχικοποιήσεις ορισμένων μεταβλητών. Στην συνέχεια τοποθετούμε την συνθήκη της επαναληπτικής δομής. Όσο Αρχή <= Τέλος Και Σημαία = Ψευδής επανάλαβε Ορίσουμε την μεταβλητή Μέση και ελέγχουμε αν το μεσαίο στοιχείο του πίνακα είναι αυτό που αναζητούμε Μέση <- (Αρχή+Τέλος)/2 Αν Πίνακας[Μέση]=Κλειδί τότε Θέση <- Μέση Σημαία <- Αληθής Αλλιώς Αν Κλειδί < Πίνακας[Μέση] τότε Τέλος <- Μέση -1 Αρχή <- Μέση +1 Στην περίπτωση που το μεσαίο στοιχείο δεν είναι το αυτό που ζητάμε τότε θα ελέγξουμε εκείνο το μέρος του πίνακα που πιθανόν βρίσκεται ανάλογα με το αν είναι μεγαλύτερο ή μικρότερο από το μεσαίο στοιχείο, αλλάζοντας τις μεταβλητές Τέλος και Αρχή αντίστοιχα. Στην συνέχεια κλείνουμε τις δομές επιλογής και επανάληψης. Τέλος_αν Τέλος_επανάληψης Αν Θέση>0 τότε Εμφάνισε Θέση Αλλιώς Εμφάνισε “Ανεπιτυχής Αναζήτηση” Tέλος_αν Τέλος Αλγορίθμου Τέλος αν το στοιχείο βρέθηκε τότε θα εμφανίζεται η θέση του πίνακα στην οποία βρέθηκε. Διαφορετικά θα εμφανίζεται το μήνυμα «Ανεπιτυχής Αναζήτηση».