Σχεδίαση και Ανάλυση Αλγορίθμων

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Σχεδίαση και Ανάλυση Αλγορίθμων"

Transcript

1 Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα.0 Σταύρος Δ. Νικολόπουλος 06-7 Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: Ταξινόμηση Selection-Sort Bubble-Sort και Insertion-Sort Quick-Sort, Merge-Sort και Heap-Sort Counting-Sort και Radix-Sort Shell-Sort

2 Αλγόριθμοι Ταξινόμησης Selection-Sort Bubble-Sort Insertion -Sort Quick -Sort Merge Sort Heap Sort Counting Sort Bucket-Sort Radix-Sort Shell-sort

3 Αλγόριθμοι Ταξινόμησης Selection-Sort Bubble-Sort Insertion -Sort Quick -Sort Merge Sort Heap Sort Counting Sort Bucket-Sort Radix-Sort Shell-sort

4 Ταξινόμηση Το Πρόβλημα της Ταξινόμησης Ορισμός Προβλήματος Είσοδος : ακολουθία n στοιχείων S = (α, α,..., αn). Έξοδος : αναδιάταξη (α, α,..., α n) των στοιχείων της S σε αύξουσα τάξη ( i, i n-, α i α i+). Θεμελιώδες αλγοριθμικό πρόβλημα Πολλές εφαρμογές (~0-% του υπολογιστικού χρόνου). Ταχύτατη αναζήτηση σε ταξινομημένα δεδομένα. Σημαντικές αλγοριθμικές ιδέες και τεχνικές!!!

5 Ταξινόμηση Το Πρόβλημα της Ταξινόμησης Ευσταθής Αλγόριθμος Ταξινόμησης Ο αλγόριθμος ταξινόμησης που διατηρεί η σχετική σειρά των στοιχείων με ίσες τιμές. Δηλαδή, ένας αλγόριθμος ταξινόμησης είναι ευσταθής εάν για οποιαδήποτε δύο στοιχεία x και y με την ίδια τιμή ισχύει ότι το x βρίσκεται πριν το y στην αρχική ακολουθία S, να ισχύει ότι το x βρίσκεται πριν το y στην ταξινομημένη ακολουθία S!!! Ευσταθής Ταξινόμηση Μη-ευσταθής Ταξινόμηση

6 Selection-Sort Αλγόριθμος Selection-sort Επιλογής swap Min Min (no swap) Sorted

7 Αλγόριθμος Selection-Sort Αλγόριθμος Selection-sort (Επιλογής) Ιδέα Αλγόριθμου!!! Quick-Select(S[,n], i) Το i-th τάξης στοιχείο της ακολουθίας S[,n] στη θέση i, i n. or Quick-Select(S[i,n], ) Το min της ακολουθίας S[i,n] στη θέση i (και το S[i] στη θέση του min). Ονομάζεται και Min-Sort (ή Max-Sort) i- i Ταξινομημένο Τμήμα n x x = min(s[i,n])

8 Αλγόριθμος Selection-Sort Αλγόριθμος Selection-sort (Επιλογής) Algorithm Selection-sort begin for i to n- do min τοs[i]; pos i Quick-Select(S[,n], i) Βρες min στοιχείο S[pos] for j στην i+ to n do or ακολουθία if S[j] < min then x = Min(S[i,n]) S[i,n] min S[j]; pos j και αντάλλαξέ το με το στοιχείο S[i] x Swap(S[i], S[pos]) return S i- i x Ταξινομημένο Τμήμα n x = min(s[i,n]) i- i Ταξινομημένο Τμήμα n x S[i+,n]) Ονομάζεται και Min-Sort (ή Max-Sort) Το min της ακολουθίας S[i,n] στη θέση i

9 Αλγόριθμος Selection-Sort Αλγόριθμος Selection-sort (Επιλογής) Algorithm Selection-sort begin for i to n- do min το S[i]; posστοιχείο i Βρες x = min στην for j υποακολουθία i+ to n do i- i n x Ταξινομημένο Τμήμα x = min(s[i,n]) if S[j] < min then S[i,n] min S[j]; pos j και αντάλλαξέ το με το στοιχείο S[i] x Swap(S[i], S[pos]) return S i- i Ταξινομημένο Τμήμα n x S[i+,n]) Ονομάζεται και Min-Sort (ή Max-Sort) Το min της ακολουθίας S[i,n] στη θέση i

10 Αλγόριθμος Selection-Sort Αλγόριθμος Selection-sort (Επιλογής) Algorithm Selection-sort begin for i to n- do min S[i]; pos i for j i+ to n do i- i n x Ταξινομημένο Τμήμα min j if S[j] < min then min S[j]; pos j Swap(S[i], S[pos]) return S Ορθότητα Πολυπλοκότητα Ονομάζεται και Min-Sort (ή Max-Sort) Το min της ακολουθίας S[i,n] στη θέση i

11 Bubble-Sort & Insertion-Sort Αλγόριθμοι Bubble-Sort & Insertion-Sort Φυσαλίδας και Παρεμβολής

12 Αλγόριθμος Bubble-Sort Αλγόριθμος Bubble-Sort (Φυσαλίδας) Algorithm Bubble-sort begin for i to n- do for j n downto i+ do if S[j] < S[j] S[j-] Σύγκριση καιthen S[j-] καιswap(s[j], ανταλλαγή εάνs[j-]) χρειάζεται i- i Ταξινομημένο Τμήμα i+ n x min j return S Το min της ακολουθίας S[i,n] στη θέση i

13 Αλγόριθμος Bubble-Sort Αλγόριθμος Bubble-Sort (Φυσαλίδας) Algorithm Bubble-sort begin for i to n- do for j n downto i+ do if S[j] < S[j-] then i- i i+ Ταξινομημένο Τμήμα n x min j Swap(S[j], S[j-]) return S Ορθότητα Πολυπλοκότητα Το min της ακολουθίας S[i,n] στη θέση i

14 Αλγόριθμος Insertion-Sort Αλγόριθμος Insertion-Sort (Παρεμβολής) Algorithm Insertion-sort begin for i to n do x S[i]; j Εισαγωγή i- του στοιχείου x της υποακολουθίας while j and xs[i+,n] < S[j] do S[j+] του S[j] στην σωστή θέση j j- στην υποακολουθία S[,i] S[j+] x return S Ονομάζεται και Αλγόριθμος Εισαγωγής i- Ταξινομημένο Τμήμα i n x Μη-ταξινομημένο Τμήμα

15 Αλγόριθμος Insertion-Sort Αλγόριθμος Insertion-Sort (Παρεμβολής) Algorithm Insertion-sort begin for i to n do x S[i]; j i- while j and x < S[j] do i- Ταξινομημένο Τμήμα Swap(x, S[j]) j j- S[j+] x return S Μια πρώτη υλοποίηση του Insertion-Sort! Ορθότητα Πολυπλοκότητα i n x Μη-ταξινομημένο Τμήμα

16 Αλγόριθμος Insertion-Sort Αλγόριθμος Insertion-Sort (Παρεμβολής) Algorithm Insertion-sort begin for i to n do x S[i]; j i- while j and x < S[j] do i- Ταξινομημένο Τμήμα S[j+] S[j] j j- S[j+] x return S Μια καλύτερη υλοποίηση του Insertion-Sort!!! Ορθότητα Πολυπλοκότητα i n x Μη-ταξινομημένο Τμήμα

17 Αλγόριθμος Insertion-Sort Αλγόριθμος Insertion-Sort (Παρεμβολής) Ορθότητα Insertion-sort Για τον αλγόριθμο Insertion-sort θεωρούμε την παρακάτω αναλλοίωτη συνθήκη επανάληψης: Algorithm Insertion-sort begin for i to n do εντολές return S Κατά την έναρξη κάθε επανάληψη του εξωτερικού βρόχου (for), η υποακολουθία με στοιχεία από την θέση έως την i, δηλ. S[,i], αποτελείται από τα ίδια στοιχεία που υπήρχαν αρχικά στην S στις θέσεις έως i, αλλά ταξινομημένα (κάθε στοιχείο είναι μεγαλύτερο από όλα τα αριστερά του). Θα αποδείξουμε ότι η παραπάνω πρόταση αποτελεί αναλλοίωτη συνθήκη επανάληψης : Αρχικοποίηση - Η υποακολουθία S[,] που αποτελείται από το πρώτο στοιχείο είναι ταξινομημένη. Διατήρηση - Κάθε επανάληψη του βρόχου επεκτείνει την υποακολουθία S[,i] διατηρώντας αναλλοίωτη την συνθήκη επανάληψης. Πράγματι, όταν το στοιχείο x εισάγεται στην S[,i] είναι μεγαλύτερο από το στοιχείο y στα αριστερά του. Δεδομένου ότι τα στοιχεία στα αριστερά του y έχουν ήδη ταξινομηθεί, συνεπάγεται ότι το x είναι μεγαλύτερο από όλα τα στοιχεία αριστερά του. Άρα, η υποακολουθία S[,i] παραμένει ταξινομημένη. Τερματισμός - Ο αλγόριθμος τερματίζει όταν το i = n, που σημαίνει ότι η ταξινομημένη υποακολουθία S[,i] έχει επεκταθεί και τώρα είναι η S[,n]. Άρα, η ακολουθία S είναι τώρα πλήρως ταξινομημένη.

18 Αλγόριθμος Insertion-Sort Αλγόριθμος Insertion-Sort (Παρεμβολής) Χαρακτηριστικά Αλγόριθμου Απλός (simple): Είναι απλός στην εφαρμογή του. Αποτελεσματικός (efficient): Για μικρά σύνολα δεδομένων. Αποδοτικός (efficient in practice): Πιο αποτελεσματικός στην πράξη από άλλους απλούς αλγορίθμους O(n) (selection-sort ή bubble-sort), όπου στην «καλή» περίπτωση (σχεδόν ταξινομημένα τα στοιχεία κατά την είσοδο) ο χρόνος εκτέλεσης είναι Ο(n). Σταθερός (stable): Δεν αλλάζει τη σχετική σειρά των στοιχείων που έχουν ίσα κλειδιά. Σε ίδιο χώρο (in-place): Απαιτεί μόνο μια σταθερή ποσότητα O() επιπλέον χώρο μνήμης. Άμεσος (on-line): Μπορεί να ταξινομήσει μια ακολουθία καθώς τη λαμβάνει!!!

19 Bubble-Sort & Insertion-Sort Συμπεριφορά Bubble-Sort & Insertion-Sort Κλάση Αλγορίθμων: Μετά από κάθε σύγκριση δύο στοιχείων: Κανένα στοιχείο δεν μετακινείται Ανταλλάσουν θέσεις Όλοι οι αλγόριθμοι ταξινόμησης που εκτελούν τέτοιες «περιορισμένες» και «τοπικές» ανταλλαγές στοιχείων συμπεριφέρονται το ίδιο με τους αλγορίθμους Bubble-Sort και Insertion-Sort

20 Bubble-Sort & Insertion-Sort Συμπεριφορά Bubble-Sort & Insertion-Sort Έστω μια μετάθεση A = (a, a,, an) του συνόλου Nn = {,,, n}. Ένα ζεύγος στοιχείων (ak, am) της μετάθεσης A ονομάζεται αντιστροφή (inversion) εάν για τις θέσεις τους ισχύει k < m και για τις τιμές του ak > am. k<m Το ζεύγος (3, ) είναι μια αντιστροφή ak > am

21 Bubble-Sort & Insertion-Sort Συμπεριφορά Bubble-Sort & Insertion-Sort Έστω μια μετάθεση A = (a, a,, an) του συνόλου Nn = {,,, n}. Ένα ζεύγος στοιχείων (ak, am) της μετάθεσης A ονομάζεται αντιστροφή (inversion) εάν για τις θέσεις τους ισχύει k < m και για τις τιμές του ak > am. αντιστροφές αντιστροφές

22 Bubble-Sort & Insertion-Sort Συμπεριφορά Bubble-Sort & Insertion-Sort Οποιοσδήποτε αλγόριθμος ταξινόμησης (όπως οι Bubble-Sort και Insertion-Sort) που εκτελεί «περιορισμένες» και «τοπικές» ανταλλαγές στοιχείων Με κάθε σύγκριση «διορθώνει» το πολύ μία αντιστροφή!!! Επομένως, το πλήθος των συγκρίσεων σε μια είσοδο A = (a, a,, an) είναι τουλάχιστον ίση με το πλήθος των αντιστροφών στη μετάθεση A!!! Πρόταση: Μια μετάθεση A = (a, a,, an) μήκους n έχει το πολύ πλήθος αντιστροφών.

23 Bubble-Sort & Insertion-Sort Συμπεριφορά Bubble-Sort & Insertion-Sort Οποιοσδήποτε αλγόριθμος ταξινόμησης (όπως οι Bubble-Sort και Insertion-Sort) που εκτελεί «περιορισμένες» και «τοπικές» ανταλλαγές στοιχείων Με κάθε σύγκριση «διορθώνει» το πολύ μία αντιστροφή!!!

24 Selection, Bubble-Sort & Insertion-Sort Σύγκριση Αλγορίθμων Ταξινόμησης Bubble-Sort Insertion-Sort

25 Selection, Bubble-Sort & Insertion-Sort Σύγκριση Αλγορίθμων Ταξινόμησης Bubble-Sort Selection-Sort Insertion-Sort

26 Αλγόριθμοι Ταξινόμησης Selection-Sort Bubble-Sort Insertion -Sort Quick -Sort Merge Sort Heap Sort Counting Sort Bucket-Sort Radix-Sort Shell-sort

27 Αλγόριθμοι Ταξινόμησης Αλγόριθμοι Quick-sort και Merge-sort

28 Αλγόριθμοι Ταξινόμησης Αλγόριθμοι Quick-sort και Merge-sort Quick-sort Διαμέριση σε μικρότερα pivot μεγαλύτερα Merge-sort Συγχώνευση ταξινομημένων ακολουθιών

29 Αλγόριθμος Quick-Sort Αλγόριθμος Ταξινόμησης Quick-Sort Τεχνική Διαίρει-και-Βασίλευε Δύσκολη διαίρεση - Εύκολη συνένωση Υπο-προβλήματα Διαφορετικού μήκους Χειρίστη Πολυπλοκότητα O(n) Μέση Πολυπλοκότητα O(nlogn)

30 Αλγόριθμος Quick-Sort Αλγόριθμος Quick-Sort Ιδέα Αλγόριθμου!!! Αρχικό x βήμα i-στης επανάληψης pivot Ενδιάμεσο x x < x Διάσπαση βήμα i-στης επανάληψης i sp Τελικό Εφαρμογή της διαδικασίας < x x o τμήμα sp split x βήμα i-στης επανάληψης o τμήμα

31 Αλγόριθμος Merge-Sort Αλγόριθμος Ταξινόμησης Merge-Sort Τεχνική Διαίρει-και-Βασίλευε Εύκολη διαίρεση Δύσκολη συνένωση Υπο-προβλήματα Ίδιου μήκους Χειρίστη Πολυπλοκότητα O(nlogn) Μέση Πολυπλοκότητα O(nlogn)

32 Αλγόριθμος Merge-Sort Αλγόριθμος Merge-Sort Ιδέα Αλγόριθμου!!! ιαίρεση ακολουθίας εισόδου μήκους n σε δύο υποακολουθίες μήκους n/. Ταξινόμηση των δύο υποακολουθιών (μισού μεγέθους) αναδρομικά. Συγχώνευση των δύο ταξινομημένων υποακολουθιών σε μία ταξινομημένη ακολουθία. ιαίρεσε (divide) Ταξινόμησε (conquer) Συγχώνευσε 3 (combine)

33 Αλγόριθμος Quick-Sort Ευστάθεια Αλγορίθμων Quick-Sort και Marge-Sort Algorithm Quick-Sort(S, first, last) begin () if first < last then pivot S[first] Algorithm Merge-Sort(A, left, right) begin if (left right) return mid = (left + right) / Merge-Sort(A, left, mid) Merge-Sort(A, mid+, right) Merge(A, left, mid, right) splitpt first split for i first+ to last do if S[i] < pivot then splitpt splitpt + x Swap(S[splitpt], S[i]) ; ; < x x x Swap (S[first], S[splitpt]) () Quick-Sort(S, first, splitpt-) (3) Quick-Sort(S, splitpt+, last) return S Algorithm Merge() i j while (A B ) if (ai bj) προσάρτηση ai στη C και i i+ else{ai > bj}προσάρτηση bj στη C και j j+ προσάρτηση των υπόλοιπων στοιχείων της μη-άδειας ακολουθίας A ή B στη C

34 Αλγόριθμος Quick-Sort Ευστάθεια Quick-Sort Algorithm Quick-Sort(S, first, last) begin () if first < last then pivot S[first] pivot = S 6 splitpt first split for i first+ to last do if S[i] < pivot then splitpt splitpt + x Swap(S[splitpt], S[i]) aux ; ; < x x x Swap (S[first], S[splitpt]) () Quick-Sort(S, first, splitpt-) (3) Quick-Sort(S, splitpt+, last) return S i j

35 Αλγόριθμος Quick-Sort Ευστάθεια Quick-Sort Algorithm Quick-Sort(S, first, last) begin () if first < last then pivot S[first] pivot = S 6 splitpt first split for i first+ to last do if S[i] < pivot then splitpt splitpt + x Swap(S[splitpt], S[i]) aux ; ; < x x x Swap (S[first], S[splitpt]) () Quick-Sort(S, first, splitpt-) (3) Quick-Sort(S, splitpt+, last) return S i j

36 Αλγόριθμος Quick-Sort Ευστάθεια Quick-Sort Algorithm Quick-Sort(S, first, last) begin () if first < last then pivot S[first] pivot = S aux 6 splitpt first split for i first+ to last do if S[i] < pivot then splitpt splitpt + x Swap(S[splitpt], S[i]) ; ; < x x x Swap (S[first], S[splitpt]) () Quick-Sort(S, first, splitpt-) (3) Quick-Sort(S, splitpt+, last) return S i j

37 Αλγόριθμος Quick-Sort Ευστάθεια Quick-Sort Algorithm Quick-Sort(S, first, last) begin () if first < last then pivot S[first] pivot = S aux 6 splitpt first split for i first+ to last do if S[i] < pivot then splitpt splitpt + x Swap(S[splitpt], S[i]) ; ; < x x x Swap (S[first], S[splitpt]) () Quick-Sort(S, first, splitpt-) (3) Quick-Sort(S, splitpt+, last) return S i j

38 Αλγόριθμος Quick-Sort Ευστάθεια Quick-Sort Algorithm Quick-Sort(S, first, last) begin () if first < last then pivot S[first] pivot = S aux 6 splitpt first split for i first+ to last do if S[i] < pivot then splitpt splitpt + x Swap(S[splitpt], S[i]) ; ; < x x x Swap (S[first], S[splitpt]) () Quick-Sort(S, first, splitpt-) (3) Quick-Sort(S, splitpt+, last) return S i j

39 Αλγόριθμος Quick-Sort Ευστάθεια Quick-Sort Algorithm Quick-Sort(S, first, last) begin () if first < last then pivot S[first] pivot = S aux 6 splitpt first split for i first+ to last do if S[i] < pivot then splitpt splitpt + x Swap(S[splitpt], S[i]) ; ; < x x x Swap (S[first], S[splitpt]) () Quick-Sort(S, first, splitpt-) (3) Quick-Sort(S, splitpt+, last) return S i j Μη-ευσταθής Αλγόριθμος

40 Αλγόριθμος Quick-Sort Ευστάθεια Quick-Sort Algorithm Quick-Sort(S, first, last) begin () if first < last then pivot S[first] pivot = S aux 6 splitpt first split for i first+ to last do if S[i] < pivot then splitpt splitpt + x Swap(S[splitpt], S[i]) ; ; < x x x Swap (S[first], S[splitpt]) () Quick-Sort(S, first, splitpt-) (3) Quick-Sort(S, splitpt+, last) return S ij Μη-ευσταθής Αλγόριθμος

41 Αλγόριθμος Quick-Sort Ευστάθεια Quick-Sort Algorithm Quick-Sort(S, first, last) begin () if first < last then pivot S[first] pivot = S 6 aux splitpt first split for i first+ to last do if S[i] < pivot then splitpt splitpt + x Swap(S[splitpt], S[i]) ; ; < x x x Swap (S[first], S[splitpt]) () Quick-Sort(S, first, splitpt-) (3) Quick-Sort(S, splitpt+, last) return S ij Μη-ευσταθής Αλγόριθμος

42 Αλγόριθμος Quick-Sort Ευστάθεια Quick-Sort Algorithm Quick-Sort(S, first, last) begin () if first < last then pivot S[first] pivot = S 6 splitpt first split for i first+ to last do if S[i] < pivot then splitpt splitpt + x Swap(S[splitpt], S[i]) ; ; < x x x Swap (S[first], S[splitpt]) () Quick-Sort(S, first, splitpt-) (3) Quick-Sort(S, splitpt+, last) return S Μη-ευσταθής Αλγόριθμος

43 Αλγόριθμος Quick-Sort Ευστάθεια Quick-Sort (in-place) pivot = Algorithm Quick-Sort(S, first, last) begin () if first < last then pivot S[first] splitpt first S 6 split for i first+ to last do if S[i] < pivot then splitpt splitpt + sp i Swap(S[splitpt], S[i]) ; ; sp : splitpt Swap (S[first], S[splitpt]) () Quick-Sort(S, first, splitpt-) (3) Quick-Sort(S, splitpt+, last) return S Split : επί τόπου διάσπαση

44 Αλγόριθμος Quick-Sort Ευστάθεια Quick-Sort (in-place) pivot = Algorithm Quick-Sort(S, first, last) begin () if first < last then pivot S[first] splitpt first S 6 split for i first+ to last do if S[i] < pivot then splitpt splitpt + sp i Swap(S[splitpt], S[i]) ; ; sp : splitpt Swap (S[first], S[splitpt]) () Quick-Sort(S, first, splitpt-) (3) Quick-Sort(S, splitpt+, last) return S Split : επί τόπου διάσπαση

45 Αλγόριθμος Quick-Sort Ευστάθεια Quick-Sort (in-place) pivot = Algorithm Quick-Sort(S, first, last) begin () if first < last then pivot S[first] splitpt first S 6 split for i first+ to last do if S[i] < pivot then splitpt splitpt + sp i Swap(S[splitpt], S[i]) ; ; Swap (S[first], S[splitpt]) () Quick-Sort(S, first, splitpt-) (3) Quick-Sort(S, splitpt+, last) return S Split : επί τόπου διάσπαση

46 Αλγόριθμος Quick-Sort Ευστάθεια Quick-Sort (in-place) pivot = Algorithm Quick-Sort(S, first, last) begin () if first < last then pivot S[first] splitpt first S 6 split for i first+ to last do if S[i] < pivot then splitpt splitpt + sp i Swap(S[splitpt], S[i]) ; ; Swap (S[first], S[splitpt]) () Quick-Sort(S, first, splitpt-) (3) Quick-Sort(S, splitpt+, last) return S Split : επί τόπου διάσπαση

47 Αλγόριθμος Quick-Sort Ευστάθεια Quick-Sort (in-place) pivot = Algorithm Quick-Sort(S, first, last) begin () if first < last then pivot S[first] splitpt first S 6 split for i first+ to last do if S[i] < pivot then splitpt splitpt + sp i Swap(S[splitpt], S[i]) ; ; Swap (S[first], S[splitpt]) () Quick-Sort(S, first, splitpt-) (3) Quick-Sort(S, splitpt+, last) return S Split : επί τόπου διάσπαση

48 Αλγόριθμος Quick-Sort Ευστάθεια Quick-Sort (in-place) pivot = Algorithm Quick-Sort(S, first, last) begin () if first < last then pivot S[first] splitpt first S 6 split for i first+ to last do if S[i] < pivot then splitpt splitpt + sp i Swap(S[splitpt], S[i]) ; ; Swap (S[first], S[splitpt]) () Quick-Sort(S, first, splitpt-) (3) Quick-Sort(S, splitpt+, last) return S Split : επί τόπου διάσπαση

49 Αλγόριθμος Quick-Sort Ευστάθεια Quick-Sort (in-place) pivot = Algorithm Quick-Sort(S, first, last) begin () if first < last then pivot S[first] splitpt first S 6 split for i first+ to last do if S[i] < pivot then splitpt splitpt + sp i Swap(S[splitpt], S[i]) ; ; Swap (S[first], S[splitpt]) () Quick-Sort(S, first, splitpt-) (3) Quick-Sort(S, splitpt+, last) return S Split : επί τόπου διάσπαση

50 Αλγόριθμος Quick-Sort Ευστάθεια Quick-Sort (in-place) pivot = Algorithm Quick-Sort(S, first, last) begin () if first < last then pivot S[first] splitpt first S 6 split for i first+ to last do if S[i] < pivot then splitpt splitpt + sp i Swap(S[splitpt], S[i]) ; ; Swap (S[first], S[splitpt]) () Quick-Sort(S, first, splitpt-) (3) Quick-Sort(S, splitpt+, last) return S Split : επί τόπου διάσπαση

51 Αλγόριθμος Quick-Sort Ευστάθεια Quick-Sort (in-place) pivot = Algorithm Quick-Sort(S, first, last) begin () if first < last then pivot S[first] splitpt first S 6 split for i first+ to last do if S[i] < pivot then splitpt splitpt + sp i Swap(S[splitpt], S[i]) ; ; Swap (S[first], S[splitpt]) () Quick-Sort(S, first, splitpt-) (3) Quick-Sort(S, splitpt+, last) return S Μη-ευσταθής Αλγόριθμος Split : επί τόπου διάσπαση

52 Αλγόριθμος Quick-Sort Ευστάθεια Quick-Sort (in-place) pivot = Algorithm Quick-Sort(S, first, last) begin () if first < last then pivot S[first] splitpt first S 6 split for i first+ to last do if S[i] < pivot then splitpt splitpt + sp Swap(S[splitpt], S[i]) ; ; Swap (S[first], S[splitpt]) () Quick-Sort(S, first, splitpt-) (3) Quick-Sort(S, splitpt+, last) return S Μη-ευσταθής Αλγόριθμος Split : επί τόπου διάσπαση i

53 Αλγόριθμος Quick-Sort Ευστάθεια Quick-Sort (in-place) pivot = Algorithm Quick-Sort(S, first, last) begin () if first < last then pivot S[first] splitpt first S 6 split for i first+ to last do if S[i] < pivot then splitpt splitpt + sp Swap(S[splitpt], S[i]) ; ; Swap (S[first], S[splitpt]) () Quick-Sort(S, first, splitpt-) (3) Quick-Sort(S, splitpt+, last) return S Μη-ευσταθής Αλγόριθμος Split : επί τόπου διάσπαση

54 Αλγόριθμος Quick-Sort Ευστάθεια Quick-Sort (in-place) pivot = Algorithm Quick-Sort(S, first, last) begin () if first < last then pivot S[first] splitpt first S 6 6 split for i first+ to last do if S[i] < pivot then splitpt splitpt + Swap(S[splitpt], S[i]) ; ; Swap (S[first], S[splitpt]) () Quick-Sort(S, first, splitpt-) (3) Quick-Sort(S, splitpt+, last) return S Μη-ευσταθής Αλγόριθμος Split : επί τόπου διάσπαση

55 Αλγόριθμος Quick-Sort Ευστάθεια Merge-Sort Algorithm Merge-Sort(A, left, right) begin A if (left right) return mid = (left + right) / Merge-Sort(A, left, mid) Merge-Sort(A, mid+, right) Merge(A, left, mid, right) Algorithm Merge() i j while (A B ) if (ai bj) προσάρτηση ai στη C και i i+ else{ai > bj}προσάρτηση bj στη C και j j+ προσάρτηση των υπόλοιπων στοιχείων της μη-άδειας ακολουθίας A ή B στη C i C 6 6 j

56 Αλγόριθμος Quick-Sort Ευστάθεια Merge-Sort Algorithm Merge-Sort(A, left, right) begin A if (left right) return mid = (left + right) / Merge-Sort(A, left, mid) Merge-Sort(A, mid+, right) Merge(A, left, mid, right) Algorithm Merge() i j while (A B ) if (ai bj) προσάρτηση ai στη C και i i+ else{ai > bj}προσάρτηση bj στη C και j j+ προσάρτηση των υπόλοιπων στοιχείων της μη-άδειας ακολουθίας A ή B στη C i C 6 6 j

57 Αλγόριθμος Quick-Sort Ευστάθεια Merge-Sort Algorithm Merge-Sort(A, left, right) begin A if (left right) return mid = (left + right) / Merge-Sort(A, left, mid) Merge-Sort(A, mid+, right) Merge(A, left, mid, right) Algorithm Merge() i j while (A B ) if (ai bj) προσάρτηση ai στη C και i i+ else{ai > bj}προσάρτηση bj στη C και j j+ προσάρτηση των υπόλοιπων στοιχείων της μη-άδειας ακολουθίας A ή B στη C 6 i C 6 j

58 Αλγόριθμος Quick-Sort Ευστάθεια Merge-Sort Algorithm Merge-Sort(A, left, right) begin A if (left right) return mid = (left + right) / Merge-Sort(A, left, mid) Merge-Sort(A, mid+, right) Merge(A, left, mid, right) 6 Algorithm Merge() i j while (A B ) if (ai bj) προσάρτηση ai στη C και i i+ else{ai > bj}προσάρτηση bj στη C και j j+ προσάρτηση των υπόλοιπων στοιχείων της μη-άδειας ακολουθίας A ή B στη C C 6 i j

59 Αλγόριθμος Quick-Sort Ευστάθεια Merge-Sort Algorithm Merge-Sort(A, left, right) begin A if (left right) return mid = (left + right) / Merge-Sort(A, left, mid) Merge-Sort(A, mid+, right) Merge(A, left, mid, right) 6 6 Algorithm Merge() i j while (A B ) if (ai bj) προσάρτηση ai στη C και i i+ else{ai > bj}προσάρτηση bj στη C και j j+ προσάρτηση των υπόλοιπων στοιχείων της μη-άδειας ακολουθίας A ή B στη C j i C

60 Αλγόριθμος Quick-Sort Ευστάθεια Merge-Sort Algorithm Merge-Sort(A, left, right) begin A if (left right) return mid = (left + right) / Merge-Sort(A, left, mid) Merge-Sort(A, mid+, right) Merge(A, left, mid, right) 6 j i C 6 Algorithm Merge() i j while (A B ) if (ai bj) προσάρτηση ai στη C και i i+ else{ai > bj}προσάρτηση bj στη C και j j+ προσάρτηση των υπόλοιπων στοιχείων της μη-άδειας ακολουθίας A ή B στη C

61 Αλγόριθμος Quick-Sort Ευστάθεια Merge-Sort Algorithm Merge-Sort(A, left, right) begin A if (left right) return mid = (left + right) / Merge-Sort(A, left, mid) Merge-Sort(A, mid+, right) Merge(A, left, mid, right) 6 6 Algorithm Merge() i j while (A B ) if (ai bj) προσάρτηση ai στη C και i i+ else{ai > bj}προσάρτηση bj στη C και j j+ προσάρτηση των υπόλοιπων στοιχείων της μη-άδειας ακολουθίας A ή B στη C j i C

62 Αλγόριθμος Quick-Sort Ευστάθεια Merge-Sort Algorithm Merge-Sort(A, left, right) begin A if (left right) return mid = (left + right) / Merge-Sort(A, left, mid) Merge-Sort(A, mid+, right) Merge(A, left, mid, right) 6 6 Algorithm Merge() i j while (A B ) if (ai bj) προσάρτηση ai στη C και i i+ else{ai > bj}προσάρτηση bj στη C και j j+ προσάρτηση των υπόλοιπων στοιχείων της μη-άδειας ακολουθίας A ή B στη C j i C 6

63 Αλγόριθμος Quick-Sort Ευστάθεια Merge-Sort Algorithm Merge-Sort(A, left, right) begin A if (left right) return mid = (left + right) / Merge-Sort(A, left, mid) Merge-Sort(A, mid+, right) Merge(A, left, mid, right) 6 6 Algorithm Merge() i j while (A B ) if (ai bj) προσάρτηση ai στη C και i i+ else{ai > bj}προσάρτηση bj στη C και j j+ προσάρτηση των υπόλοιπων στοιχείων της μη-άδειας ακολουθίας A ή B στη C j i C 6 Ευσταθής Αλγόριθμος

64 Αλγόριθμοι Quick-Sort & Merge-Sort Σύγκριση Αλγορίθμων Ταξινόμησης Quick-Sort Merge-Sort

65 Σύγκριση Αλγορίθμων Ταξινόμησης Αλγόριθμοι Quick-Sort & Merge-Sort

66 Αλγόριθμοι Quick-Sort & Merge-Sort Σύγκριση Αλγορίθμων Ταξινόμησης Bubble-Sort Insertion-Sort Quick-Sort

67 Αλγόριθμοι Quick-Sort & Merge-Sort Σύγκριση Αλγορίθμων Ταξινόμησης Selection-Sort Insertion-Sort Merge-Sort

68 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort

69 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Ιδέα Αλγόριθμου!!! Ο αλγόριθμος προτάθηκε από τον Williams το 96. Βασίζεται στην ιδιότητα του σωρού: το max (ή min) στοιχείο βρίσκεται στην ρίζα. Ο αλγόριθμος Heap-Sort εκτελείται σε δύο φάσεις: 6 () τη φάση της δημιουργίας του σωρού, και () τη φάση της επεξεργασίας του σωρού. 0 Σωρός Μεγίστων : 7 9 3

70 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Ιδιότητες Σωρού!!! Όλοι οι τερματικοί κόμβοι (φύλλα) του σωρού βρίσκονται στο h- και h επίπεδο. Όλες οι διαδρομές από την ρίζα σε ένα τερματικό κόμβο του h είναι αριστερά όλων των διαδρομών από την ρίζα σε ένα τερματικό κόμβο του h- επιπέδου. Ο δεξιότερος εσωτερικός κόμβος του h- επιπέδου έχει αριστερό παιδί. 6 Ιδιότητα μερικής διάταξης (partial order): Η τιμή του κλειδιού ενός κόμβου είναι μεγαλύτερη ή ίση (σωρός μεγίστων) από τις τιμές των κλειδιών των παιδιών του! Σωρός Μεγίστων :

71 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Algorithm Heap-sort begin for i to n- do min S[i]; pos i Διάγραψε τη ρίζα (x = max) του for j i+ to n do σωρού με στοιχεία if S[j] < min then S[,i] 3 7 min S[j]; pos j και την τιμή της καταχώρησε τη στη θέση i του πίνακα Α[,n] Swap(S[i], S[pos]) return S Διαγραφή Max = 9 0 6

72 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Ας θυμηθούμε Διαγραφή Max Max = 6

73 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Ας θυμηθούμε Διαγραφή Max Max = 6

74 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Ας θυμηθούμε Διαγραφή Max Αποκατάσταση Heap Η τιμή του κλειδιού ενός κόμβου είναι μεγαλύτερη ή ίση (σωρός μεγίστων) από τις τιμές των κλειδιών των παιδιών του

75 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Ας θυμηθούμε Διαγραφή Max Αποκατάσταση Heap Η τιμή του κλειδιού ενός κόμβου είναι μεγαλύτερη ή ίση (σωρός μεγίστων) από τις τιμές των κλειδιών των παιδιών του

76 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Ας θυμηθούμε Διαγραφή Max Αποκατάσταση Heap Η τιμή του κλειδιού ενός κόμβου είναι μεγαλύτερη ή ίση (σωρός μεγίστων) από τις τιμές των κλειδιών των παιδιών του

77 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Ας θυμηθούμε Διαγραφή Max Αποκατάσταση Heap Η τιμή του κλειδιού ενός κόμβου είναι μεγαλύτερη ή ίση (σωρός μεγίστων) από τις τιμές των κλειδιών των παιδιών του

78 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Ας θυμηθούμε Διαγραφή Max Αποκατάσταση Heap Η τιμή του κλειδιού ενός κόμβου είναι μεγαλύτερη ή ίση (σωρός μεγίστων) από τις τιμές των κλειδιών των παιδιών του

79 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Ας θυμηθούμε Διαγραφή Max Αποκατάσταση Heap Η τιμή του κλειδιού ενός κόμβου είναι μεγαλύτερη ή ίση (σωρός μεγίστων) από τις τιμές των κλειδιών των παιδιών του

80 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Παράδειγμα Είσοδος Αλγόριθμου 6 Σωρός Μεγίστων

81 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Παράδειγμα Βήμα Διαγραφή Max =6

82 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Παράδειγμα Βήμα Αποκατάσταση Heap

83 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Παράδειγμα Βήμα Διαγραφή Max = 6

84 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Παράδειγμα Βήμα Αποκατάσταση Heap 7 6 3

85 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Παράδειγμα Βήμα Διαγραφή Max = 0 6

86 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Παράδειγμα Βήμα Αποκατάσταση Heap 0 6

87 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Παράδειγμα Βήμα Διαγραφή Max = 9 0 6

88 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Παράδειγμα Βήμα Αποκατάσταση Heap 9 0 6

89 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Παράδειγμα Βήμα 3 7 Διαγραφή Max = 9 0 6

90 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Παράδειγμα Βήμα Αποκατάσταση Heap 9 0 6

91 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Παράδειγμα Βήμα

92 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Παράδειγμα Βήμα

93 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Παράδειγμα Βήμα

94 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Παράδειγμα Βήμα

95 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Παράδειγμα Βήμα

96 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Παράδειγμα Έξοδος Αλγόριθμου 6 Ταξινομημένη ακολουθία στοιχείων

97 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Διατήρηση σωρού σε πίνακα!!! Εκτός από την χρήση δεικτών (δομή δένδρο) για την αναπαράσταση ενός σωρού Ν στοιχείων, μπορούμε να χρησιμοποιήσουμε έναν πίνακα A μήκους Ν. Οι κόμβοι του σωρού αντιστοιχούν στις θέσεις του πίνακα Η: A() είναι η ρίζα, και για κάθε κόμβο στην θέση i τα παιδιά του βρίσκονται στις θέσεις i και i+. 6 O πατέρας του κόμβου i βρίσκεται στη θέση i/. A: Heap μεγέθους N =

98 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Διατήρηση σωρού σε πίνακα!!! Διαγραφή Max Heap μεγέθους N = 0

99 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Διατήρηση σωρού σε πίνακα!!! Διαγραφή Max Αποκατάσταση Heap μεγέθους N- 6

100 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Διατήρηση σωρού σε πίνακα!!! Διαγραφή Max Αποκατάσταση Heap Αποκατάσταση Heap μεγέθους N- 6

101 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Διατήρηση σωρού σε πίνακα!!! Διαγραφή Max Αποκατάσταση Heap Αποκατάσταση Heap μεγέθους N- 6

102 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Διατήρηση σωρού σε πίνακα!!! Διαγραφή Max Αποκατάσταση Heap Αποκατάσταση Heap μεγέθους N- 6

103 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Διατήρηση σωρού σε πίνακα!!! Διαγραφή Max Αποκατάσταση Heap Αποκατάσταση Heap μεγέθους N- 6

104 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Διατήρηση σωρού σε πίνακα!!! Διαγραφή Max Αποκατάσταση Heap Αποκατάσταση Heap μεγέθους N- 6

105 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Διατήρηση σωρού σε πίνακα!!! Διαγραφή Max Αποκατάσταση Heap Αποκατάσταση Heap μεγέθους N- 6

106 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Algorithm Heap-sort begin Build-heap(A,n) heap-size(a) n for i heap-size(a) downto do Swap(A[], A[i]) heap-size(a)-build-heap(a, heap-size(a)) return Α A: Heap μεγέθους N = 0 Τα προς ταξινόμηση στοιχεία είναι καταχωρημένα στον πίνακα Α μήκος N. Εάν κάποια στιγμή ο σωρός έχει n < N στοιχεία χρησιμοποιούμε τις n πρώτες θέσεις του πίνακα A

107 Αλγόριθμος Heap-Sort Αλγόριθμος Heap-Sort Algorithm Heap-sort begin Build-heap(A,n) heap-size(a) n for i heap-size(a) downto do Swap(A[], A[i]) heap-size(a)-build-heap(a, heap-size(a)) return Α A: Heap μεγέθους N = 0 Τα προς ταξινόμηση στοιχεία είναι καταχωρημένα στον πίνακα Α μήκος N. Εάν κάποια στιγμή ο σωρός έχει n < N στοιχεία χρησιμοποιούμε τις n πρώτες θέσεις του πίνακα A. Ορθότητα Πολυπλοκότητα

108 Σύγκριση Αλγορίθμων Ταξινόμησης Αλγόριθμος Heap-Sort

109 Σύγκριση Αλγορίθμων Ταξινόμησης Αλγόριθμος Heap-Sort

110 Σύγκριση Αλγορίθμων Ταξινόμησης Αλγόριθμος Heap-Sort

111 Κάτω Φράγματα Ταξινόμησης Κάτω Φράγμα Ταξινόμησης Υπολόγισε ένα ελάχιστο πλήθος Βασικών Πράξεων (συγκρίσεων) που απαιτούνται για την επίλυση του Προβλήματος SORTING Είσοδος (x, x,..., xn) Αρχικά n! περιπτώσεις: x < x < x3 <... < xn x < x < x3 <... < xn x3 < x < x <... < xn... xn < xn- <... < x Σε κάθε σύγκριση το πλήθος των περιπτώσεων υποδιπλασιάζεται (στην καλύτερη περίπτωση) Έχουμε δείξει (Ενότητα 3): Πλήθος συγκρίσεων log(n!) (n logn)/ Οποιοσδήποτε αλγόριθμος ταξινόμησης n στοιχείων χρειάζεται Ω(n logn) συγκρίσεις Κάτω φράγμα για ταξινόμηση που χρησιμοποιεί μόνο συγκρίσεις

112 Κάτω Φράγματα Ταξινόμησης Κάτω Φράγμα Ταξινόμησης Δένδρο απόφασης Οποιοσδήποτε αλγόριθμος ταξινόμησης με συγκρίσεις, ταξινομεί n στοιχεία απαιτώντας τουλάχιστον n log n συγκρίσεις. x[i] <? x[j] x[b] <? x[c] x[f] <? x[g] x[h] <? x[i] x[d] <? x[e] x[j] <? x[k] Ω(n logn) x[l] <? x[m] n! Ύψος δυαδικού δένδρου με n! φύλλα Λήμμα 3. Για δεδομένο n, το δένδρο απόφασης για οποιοδήποτε αλγόριθμο ταξινόμησης με συγκρίσεις των στοιχείων του έχει ύψος τουλάχιστον n log n.

113 Κάτω Φράγματα Ταξινόμησης Κάτω Φράγμα Ταξινόμησης Δένδρο απόφασης Οποιοσδήποτε αλγόριθμος ταξινόμησης με συγκρίσεις, ταξινομεί n στοιχεία απαιτώντας τουλάχιστον n log n συγκρίσεις. x[i] <? x[j] x[b] <? x[c] x[f] <? x[g] x[h] <? x[i] x[d] <? x[e] x[j] <? x[k] Ω(n logn) x[l] <? x[m] n! Ύψος δυαδικού δένδρου με n! φύλλα Κάτω φράγμα ταξινόμησης:

114 Αλγόριθμοι Ταξινόμησης Selection-Sort Bubble-Sort Insertion -Sort Quick -Sort Merge Sort Heap Sort Counting Sort Bucket-Sort Radix-Sort Shell-sort

115 Αλγόριθμος Counting-Sort Αλγόριθμος Counting-Sort Α C B

116 Αλγόριθμος Counting-Sort Αλγόριθμος Counting-Sort Ιδέα Αλγόριθμου!!! Ο αλγόριθμος ταξινόμησης της απαρίθμησης (Counting Sort) δέχεται ότι τα n στοιχεία εισόδου (κλειδιά) είναι ακέραιοι στο διάστημα [, k], όπου k θετικός ακέραιος. Όταν k = Ο(n), ο αλγόριθμος εκτελείται σε χρόνο O(n). Βασική ιδέα: για κάθε στοιχείο x της εισόδου υπολογίζει το πλήθος των στοιχείων που είναι μικρότερα του x. Για παράδειγμα, εάν υπάρχουν 3 στοιχεία μικρότερα του x, τότε το x θα καταλάβει τη θέση στην ταξινομημένη ακολουθία.

117 Αλγόριθμος Counting-Sort Αλγόριθμος Counting-Sort Ιδέα Αλγόριθμου!!! Ο αλγόριθμος ταξινόμησης της απαρίθμησης (Counting Sort) δέχεται ότι τα n στοιχεία εισόδου (κλειδιά) είναι ακέραιοι στο διάστημα [, k], όπου k θετικός ακέραιος. Όταν k = Ο(n), ο αλγόριθμος εκτελείται σε χρόνο O(n). Προσοχή!!!: Οι ακέραιοι προς ταξινόμηση είναι τα κλειδιά (keys). Α: 3 6 6

118 Αλγόριθμος Counting-Sort Αλγόριθμος Counting-Sort Ιδέα Αλγόριθμου!!! Τα n στοιχεία εισόδου είναι καταχωρημένα στον πίνακα A[..n]. Ο αλγόριθμος απαιτεί δύο ακόμα βοηθητικούς πίνακες: B[..n] για την καταχώρηση της ταξινομημένης ακολουθίας των στοιχείων. C[..k] για την καταχώρηση βοηθητικών πληροφοριών. n Α B C k

119 Αλγόριθμος Counting-Sort Αλγόριθμος Counting-Sort Αλγόριθμος Algorithm Counting-sort begin () for i to k do C[i] 0 () for i to n do C[A[i]]++ (3) for i to k do C[i] C[i] + C[i-] () for i n downto do B[C[A[i]]] A[i] C[A[i]]- return B Είσοδος: Α C C 0 0 C Β * * * * * * * Έξοδος: B 3 3 6

120 Αλγόριθμος Counting-Sort Αλγόριθμος Counting-Sort Παράδειγμα Α C Μέτρηση C Προθεματικά Αθροίσματα

121 Αλγόριθμος Counting-Sort Αλγόριθμος Counting-Sort Παράδειγμα Α Αρχικοποίηση C B

122 Αλγόριθμος Counting-Sort Αλγόριθμος Counting-Sort Βήμα Παράδειγμα Α C A(0) = 6 C(6) = 0 B(0) = 6 B

123 Αλγόριθμος Counting-Sort Αλγόριθμος Counting-Sort Βήμα Παράδειγμα Α C A(0) = 6 C(6) = 0 B B(0) = 6

124 Αλγόριθμος Counting-Sort Αλγόριθμος Counting-Sort Βήμα Παράδειγμα Α C A(0) = 6 C(6) = 0 C(6) -- B B(0) = 6

125 Αλγόριθμος Counting-Sort Αλγόριθμος Counting-Sort Βήμα Παράδειγμα Α C A(9) = C() = B() = B

126 Αλγόριθμος Counting-Sort Αλγόριθμος Counting-Sort Βήμα Παράδειγμα Α C A(9) = C() = B B() =

127 Αλγόριθμος Counting-Sort Αλγόριθμος Counting-Sort Βήμα Παράδειγμα Α C A(9) = C() = C() -- B B() =

128 Αλγόριθμος Counting-Sort Αλγόριθμος Counting-Sort Βήμα 3 Παράδειγμα Α C A() = C() = 7 B(7) = B

129 Αλγόριθμος Counting-Sort Αλγόριθμος Counting-Sort Βήμα 3 Παράδειγμα Α C A() = C() = 7 B B(7) =

130 Αλγόριθμος Counting-Sort Αλγόριθμος Counting-Sort Βήμα 3 Παράδειγμα Α C A() = C() = 7 C() -- B B(7) =

131 Αλγόριθμος Counting-Sort Αλγόριθμος Counting-Sort Βήμα Παράδειγμα Α C A(7) = C() = B() = B

132 Αλγόριθμος Counting-Sort Αλγόριθμος Counting-Sort Βήμα Παράδειγμα Α C A(7) = C() = B B() =

133 Αλγόριθμος Counting-Sort Αλγόριθμος Counting-Sort Βήμα Παράδειγμα Α C A(7) = C() = C() -- B B() =

134 Αλγόριθμος Counting-Sort Αλγόριθμος Counting-Sort Βήμα Παράδειγμα Α C A(6) = C() = 6 B(6) = B

135 Αλγόριθμος Counting-Sort Αλγόριθμος Counting-Sort Βήμα Παράδειγμα Α C A(6) = C() = 6 B B(6) =

136 Αλγόριθμος Counting-Sort Αλγόριθμος Counting-Sort Βήμα Παράδειγμα Α A(6) = C 3 6 C() = 6 9 C() -- B B(6) =

137 Αλγόριθμος Counting-Sort Αλγόριθμος Counting-Sort Βήμα 6 Παράδειγμα Α C A() = 3 C(3) = B() = 3 B

138 Αλγόριθμος Counting-Sort Αλγόριθμος Counting-Sort Βήμα 6 Παράδειγμα Α C A() = 3 C(3) = C(3) -- B B() = 3

139 Αλγόριθμος Counting-Sort Αλγόριθμος Counting-Sort Βήμα 7 Παράδειγμα Α C A() = C() = B() = B

140 Αλγόριθμος Counting-Sort Αλγόριθμος Counting-Sort Βήμα 7 Παράδειγμα Α C A() = C() = C() -- B B() =

141 Αλγόριθμος Counting-Sort Αλγόριθμος Counting-Sort Βήμα Παράδειγμα Α C A(3) = C() = C() -- B B() =

142 Αλγόριθμος Counting-Sort Αλγόριθμος Counting-Sort Βήμα 9 Παράδειγμα Α A() = 6 C 3 6 C(6) = C(6) -- B B(9) = 6

143 Αλγόριθμος Counting-Sort Αλγόριθμος Counting-Sort Βήμα 0 Παράδειγμα Α A() = 3 C 3 6 C(3) = 3 0 C(3) -- B B(3) = 3

144 Αλγόριθμος Counting-Sort Αλγόριθμος Counting-Sort Παράδειγμα Α A() = 3 C 3 6 C(3) = 3 0 C(3) -- B B(3) = 3 Τέλος Αλγόριθμου

145 Αλγόριθμος Radix-Sort Αλγόριθμος Radix-Sort

146 Αλγόριθμος Radix-Sort Αλγόριθμος Radix-Sort Μια εφαρμογή ταξινόμησης!!! Έστω ότι θέλουμε να ταξινομήσουμε Ν άτομα ως προς την ημερομηνία γέννησής τους (έτος-μήνας-ημέρα) κατά φθίνουσα τάξη Ένας απλός τρόπος με την χρήση του αλγόριθμου Counting-Sort!!! Ταξινομούμε αρχικά τα Ν άτομα ως προς το έτος γέννησής τους! Στη συνέχεια, άτομα με το ίδιο έτος γέννησης τα ταξινομούμε ως προς το μήνα γέννησης τους!! Τέλος, άτομα με το ίδιο έτος και μήνα γέννησης τα ταξινομούμε ως προς την ημέρα γέννησης τους!! Υπάρχει κάποια «δυσκολία» σε αυτό τον τρόπο?

147 Αλγόριθμος Radix-Sort Αλγόριθμος Radix-Sort Μια εφαρμογή ταξινόμησης!!! Έστω ότι θέλουμε να ταξινομήσουμε Ν άτομα ως προς την ημερομηνία γέννησής τους (έτος-μήνας-ημέρα) κατά φθίνουσα τάξη

148 Αλγόριθμος Radix-Sort Αλγόριθμος Radix-Sort Μια εφαρμογή ταξινόμησης!!! Έστω ότι θέλουμε να ταξινομήσουμε Ν άτομα ως προς την ημερομηνία γέννησής τους (έτος-μήνας-ημέρα) κατά φθίνουσα τάξη

149 Αλγόριθμος Radix-Sort Αλγόριθμος Radix-Sort Μια εφαρμογή ταξινόμησης!!! Έστω ότι θέλουμε να ταξινομήσουμε Ν άτομα ως προς την ημερομηνία γέννησής τους (έτος-μήνας-ημέρα) κατά φθίνουσα τάξη

150 Αλγόριθμος Radix-Sort Αλγόριθμος Radix-Sort Μια εφαρμογή ταξινόμησης!!! Έστω ότι θέλουμε να ταξινομήσουμε Ν άτομα ως προς την ημερομηνία γέννησής τους (έτος-μήνας-ημέρα) κατά φθίνουσα τάξη

151 Αλγόριθμος Radix-Sort Αλγόριθμος Radix-Sort Ιδέα Αλγόριθμου!!! Έστω ότι τα στοιχεία είναι ακέραιοι με k ψηφία καταχωρημένα σε ένα πίνακα A. Ο αλγόριθμος Radix-Sort εργάζεται ως εξής: Παράδειγμα :

152 Αλγόριθμος Radix-Sort Αλγόριθμος Radix-Sort Ιδέα Αλγόριθμου!!! Έστω ότι τα στοιχεία είναι ακέραιοι με k ψηφία καταχωρημένα σε ένα πίνακα A. Ο αλγόριθμος Radix-Sort εργάζεται ως εξής: Παράδειγμα :

153 Αλγόριθμος Radix-Sort Αλγόριθμος Radix-Sort Ιδέα Αλγόριθμου!!! Έστω ότι τα στοιχεία είναι ακέραιοι με k ψηφία καταχωρημένα σε ένα πίνακα A. Ο αλγόριθμος Radix-Sort εργάζεται ως εξής: Παράδειγμα :

154 Αλγόριθμος Radix-Sort Αλγόριθμος Radix-Sort Ιδέα Αλγόριθμου!!! Έστω ότι τα στοιχεία είναι ακέραιοι με k ψηφία καταχωρημένα σε ένα πίνακα A. Ο αλγόριθμος Radix-Sort εργάζεται ως εξής: Παράδειγμα :

155 Αλγόριθμος Radix-Sort Αλγόριθμος Radix-Sort Ιδέα Αλγόριθμου!!! Έστω ότι τα στοιχεία είναι ακέραιοι με k ψηφία καταχωρημένα σε ένα πίνακα A. Ο αλγόριθμος Radix-Sort εργάζεται ως εξής: Παράδειγμα :

156 Αλγόριθμος Radix-Sort Αλγόριθμος Radix-Sort Πολυπλοκότητα Παράδειγμα :

157 Αλγόριθμος Radix-Sort Σύγκριση Αλγορίθμων Ταξινόμησης Bubble-Sort Selection-Sort Insertion-Sort Merge-Sort Radix-Sort

158 Αλγόριθμος Bucket-Sort Αλγόριθμος Bucket-Sort

159 Αλγόριθμος Bucket-Sort Αλγόριθμος Bucket-Sort Ιδέα Αλγόριθμου!!! Ο αλγόριθμος της ταξινόμησης με κάδους (Bucket-Sort) δέχεται ότι τα n προς ταξινόμηση στοιχείων παράγονται από μια τυχαία διαδικασία η οποία κατανέμει τα στοιχεία ομοιόμορφα στο διάστημα [0, ). Τεχνική : Ο αλγόριθμος χωρίζει το διάστημα [0, ) σε n ίσου μήκους υποδιαστήματα, ή «κάδους» όπως συνηθίζονται να λέγονται, και κατόπιν να κατανέμει τα n στοιχεία στους κάδους. Τα στοιχεία των κάδων ταξινομούνται με την χρήση ενός αλγόριθμου ταξινόμησης. Ο αλγόριθμος εκτελείται σε χρόνο O(n)

160 Αλγόριθμος Bucket-Sort Αλγόριθμος Bucket-Sort Παράδειγμα: Έστω ότι θέλουμε να ταξινομήσουμε τους 3-ψήφιους ακεραίους: Πολυπλοκότητα:

161 Αλγόριθμος Shell-Sort Αλγόριθμος Shell-Sort

162 Αλγόριθμος Shell-Sort Αλγόριθμος Shell-Sort Ιδέα Αλγόριθμου!!! Η τεχνική του αλγόριθμου είναι ενδιαφέρουσα, ο αλγόριθμος προγραμματίζεται εύκολα και εκτελείται γρήγορα. Τεχνική : Ο αλγόριθμος ταξινομεί μια ακολουθία S με n στοιχεία με επιτυχή ταξινόμηση υποακολουθιών της ακολουθία S. Οι υποακολουθίες καθορίζονται από μια σειρά βημάτων προσαύξησης (increments): h, h, h3,, ht-, ht

163 Αλγόριθμος Shell-Sort Αλγόριθμος Shell-Sort Παράδειγμα h =

164 Αλγόριθμος Shell-Sort Αλγόριθμος Shell-Sort Παράδειγμα h =

165 Αλγόριθμος Shell-Sort Αλγόριθμος Shell-Sort Παράδειγμα h 3 =

166 Αλγόριθμος Shell-Sort Αλγόριθμος Shell-Sort Παράδειγμα h =

167 Αλγόριθμος Shell-Sort Αλγόριθμος Shell-Sort Παράδειγμα h = Ταξινομημένη Ακολουθία 7 3

168 Σύγκριση Αλγορίθμων Ταξινόμησης Αλγόριθμος Shell-Sort

169 Ευχαριστώ για τη Συμμετοχή σας!!! Σταύρος Δ. Νικολόπουλος Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage:

Σχεδίαση και Ανάλυση Αλγορίθμων

Σχεδίαση και Ανάλυση Αλγορίθμων Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 3.0 Σταύρος Δ. Νικολόπουλος 0-7 Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros Διαίρει και Βασίλευε Quick-sort και Merge-sort

Διαβάστε περισσότερα

Σχεδίαση και Ανάλυση Αλγορίθμων

Σχεδίαση και Ανάλυση Αλγορίθμων Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4.0 Επιλογή Αλγόριθμοι Επιλογής Select και Quick-Select Σταύρος Δ. Νικολόπουλος 2016-17 Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros

Διαβάστε περισσότερα

Σχεδίαση & Ανάλυση Αλγορίθμων

Σχεδίαση & Ανάλυση Αλγορίθμων Σχεδίαση & Ανάλυση Αλγορίθμων Ενότητα 3 Αλγόριθμοι Επιλογής Σταύρος Δ. Νικολόπουλος Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros Αλγόριθμοι Επιλογής Γνωρίζουμε

Διαβάστε περισσότερα

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φ Ρ Ο Ν Τ Ι Σ Τ Η Ρ Ι Ο 1 : ΤΑΞΙΝΟΜΗΣΗ Δ Ρ Ι Τ Σ Α Σ Η Λ Ι Α Σ Υ Π Ο Ψ Η Φ Ι Ο Σ Δ Ι Δ Α Κ Τ Ο Ρ Α Σ

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φ Ρ Ο Ν Τ Ι Σ Τ Η Ρ Ι Ο 1 : ΤΑΞΙΝΟΜΗΣΗ Δ Ρ Ι Τ Σ Α Σ Η Λ Ι Α Σ Υ Π Ο Ψ Η Φ Ι Ο Σ Δ Ι Δ Α Κ Τ Ο Ρ Α Σ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φ Ρ Ο Ν Τ Ι Σ Τ Η Ρ Ι Ο 1 : ΤΑΞΙΝΟΜΗΣΗ Δ Ρ Ι Τ Σ Α Σ Η Λ Ι Α Σ Υ Π Ο Ψ Η Φ Ι Ο Σ Δ Ι Δ Α Κ Τ Ο Ρ Α Σ ΤΟ ΠΡΟΒΛΗΜΑ ΤΗΣ ΤΑΞΙΝΟΜΗΣΗΣ Ορισμός ταξινόμησης 2 Κατηγορίες αλγορίθμων ταξινόμησης

Διαβάστε περισσότερα

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 22 Counting sort, bucket sort και radix sort 1 / 16 Ιδιότητες αλγορίθμων ταξινόμησης ευστάθεια (stable

Διαβάστε περισσότερα

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

ΠΛΗ111. Ανοιξη Μάθηµα 9 ο. Ταξινόµηση. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 9 ο Ταξινόµηση Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ταξινόµηση Εισαγωγή Selection sort Insertion sort Bubble sort

Διαβάστε περισσότερα

Ταξινόμηση με συγχώνευση Merge Sort

Ταξινόμηση με συγχώνευση Merge Sort Ταξινόμηση με συγχώνευση Merge Sort 7 2 9 4 2 4 7 9 7 2 2 7 9 4 4 9 7 7 2 2 9 9 4 4 Πληροφορικής 1 Διαίρει και Βασίλευε Η μέθοδος του «Διαίρει και Βασίλευε» είναι μια γενική αρχή σχεδιασμού αλγορίθμων

Διαβάστε περισσότερα

Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort. Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012

Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort. Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012 Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012 3 5 1 Ταξινόμηση - Sorting Πίνακας Α 1 3 5 5 3 1 Ταξινόμηση (Φθίνουσα) Χωρίς Ταξινόμηση Ταξινόμηση

Διαβάστε περισσότερα

ιαίρει-και-βασίλευε ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

ιαίρει-και-βασίλευε ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ιαίρει-και-βασίλευε ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ιαίρει-και-βασίλευε Γενική μέθοδος σχεδιασμού αλγορίθμων: ιαίρεση σε ( 2) υποπροβλήματα

Διαβάστε περισσότερα

Ταξινόμηση. Σαλτογιάννη Αθανασία

Ταξινόμηση. Σαλτογιάννη Αθανασία Ταξινόμηση Σαλτογιάννη Αθανασία Ταξινόμηση Ταξινόμηση Τι εννοούμε όταν λέμε ταξινόμηση; Ταξινόμηση Τι εννοούμε όταν λέμε ταξινόμηση; Ποια είδη αλγορίθμων ταξινόμησης υπάρχουν; Ταξινόμηση Τι εννοούμε όταν

Διαβάστε περισσότερα

Επιμέλεια διαφανειών: Δ. Φωτάκης Τροποποιήσεις-προσθήκες: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Επιμέλεια διαφανειών: Δ. Φωτάκης Τροποποιήσεις-προσθήκες: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Διαίρει-και-Βασίλευε Επιμέλεια διαφανειών: Δ. Φωτάκης Τροποποιήσεις-προσθήκες: Α. Παγουρτζής Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Διαίρει-και-Βασίλευε Γενική

Διαβάστε περισσότερα

Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort

Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort 1, c 3, a 3, b 7, d 7, g 7, e B 0 1 3 4 5 6 7 8 9 1 BucketSort (Ταξινόμηση Κάδου) - Αρχικά θεωρείται ένα κριτήριο κατανομής με βάση το οποίο

Διαβάστε περισσότερα

Αλγόριθμοι ταξινόμησης

Αλγόριθμοι ταξινόμησης Αλγόριθμοι Ταξινόμησης Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Οι αλγόριθμοι ταξινόμησης BuubleSort, SelectionSort, InsertionSort, Merger Sort, Quick Soft ΕΠΛ Δομές Δεδομένων και Αλγόριθμοι

Διαβάστε περισσότερα

Quicksort. Πρόβλημα Ταξινόμησης. Μέθοδοι Ταξινόμησης. Συγκριτικοί Αλγόριθμοι

Quicksort. Πρόβλημα Ταξινόμησης. Μέθοδοι Ταξινόμησης. Συγκριτικοί Αλγόριθμοι Πρόβλημα Ταξινόμησης Quicksort Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Είσοδος : ακολουθία n αριθμών (α 1, α 2,..., α n

Διαβάστε περισσότερα

Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I

Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Οι αλγόριθμοι ταξινόμησης: Α. SelectionSort Ταξινόμηση με Επιλογή Β. InsertionSort Ταξινόμηση με Εισαγωγή

Διαβάστε περισσότερα

Merge Sort (Ταξινόμηση με συγχώνευση) 6/14/2007 3:04 AM Merge Sort 1

Merge Sort (Ταξινόμηση με συγχώνευση) 6/14/2007 3:04 AM Merge Sort 1 Merge Sort (Ταξινόμηση με συγχώνευση) 7 2 9 4 2 4 7 9 7 2 2 7 9 4 4 9 7 7 2 2 9 9 4 4 6/14/2007 3:04 AM Merge Sort 1 Κύρια σημεία για μελέτη Το παράδειγμα του «διαίρει και βασίλευε» ( 4.1.1) Merge-sort

Διαβάστε περισσότερα

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ταξινόμηση. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Ταξινόμηση Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Το πρόβλημα Είσοδος n αντικείμενα a 1, a 2,..., a n με κλειδιά (συνήθως σε ένα πίνακα, ή λίστα, κ.τ.λ)

Διαβάστε περισσότερα

Διαίρει-και-Βασίλευε. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2

Διαίρει-και-Βασίλευε. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2 Διαίρει-και-Βασίλευε Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2 Διαίρει-και-Βασίλευε Γενική µέθοδος σχεδιασµού αλγορίθµων: Διαίρεση σε ( 2) υποπροβλήµατα (σηµαντικά) µικρότερου µεγέθους.

Διαβάστε περισσότερα

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

5. Απλή Ταξινόμηση. ομές εδομένων. Χρήστος ουλκερίδης. Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 5. Απλή Ταξινόμηση 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 11/11/2016 Εισαγωγή Η

Διαβάστε περισσότερα

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 7 η. Βασίλης Στεφανής

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 7 η. Βασίλης Στεφανής Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ Διάλεξη 7 η Βασίλης Στεφανής Αλγόριθμοι ταξινόμησης Στην προηγούμενη διάλεξη είδαμε: Binary search Λειτουργεί μόνο σε ταξινομημένους πίνακες Πώς τους ταξινομούμε? Πολλοί τρόποι. Ενδεικτικά:

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές Δεδομένων Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού

Διαβάστε περισσότερα

Ταξινόμηση. Παύλος Εφραιμίδης. Δομές Δεδομένων Ταξινόμηση 1

Ταξινόμηση. Παύλος Εφραιμίδης. Δομές Δεδομένων Ταξινόμηση 1 Ταξινόμηση Παύλος Εφραιμίδης Δομές Δεδομένων Ταξινόμηση 1 Το πρόβλημα της ταξινόμησης Δομές Δεδομένων Ταξινόμηση 2 Ταξινόμηση Δίνεται πολυ-σύνολο Σ με στοιχεία από κάποιο σύμπαν U (πχ. U = το σύνολο των

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές Δεδομένων Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού

Διαβάστε περισσότερα

Αλγόριθμοι Ταξινόμησης Μέρος 2

Αλγόριθμοι Ταξινόμησης Μέρος 2 Αλγόριθμοι Ταξινόμησης Μέρος 2 Μανόλης Κουμπαράκης 1 Προχωρημένοι Αλγόριθμοι Ταξινόμησης Στη συνέχεια θα παρουσιάσουμε τρείς προχωρημένους αλγόριθμους ταξινόμησης: treesort, quicksort και mergesort. 2

Διαβάστε περισσότερα

Διάλεξη 10: Αλγόριθμοι Ταξινόμησης II

Διάλεξη 10: Αλγόριθμοι Ταξινόμησης II ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 10: Αλγόριθμοι Ταξινόμησης II Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Οι αλγόριθμοι ταξινόμησης: Δ. QuickSort Γρήγορη Ταξινόμηση Ε. BucketSort

Διαβάστε περισσότερα

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

Δομές Δεδομένων & Αλγόριθμοι Δομές Δεδομένων & Αναζήτηση & Ταξινόμηση 1 Αναζήτηση Έχω έναν πίνακα Α με Ν στοιχεία. Πρόβλημα: Βρες αν το στοιχείο x ανήκει στον πίνακα Αν ο πίνακας είναι αταξινόμητος τότε μόνη λύση σειριακή αναζήτηση

Διαβάστε περισσότερα

Αλγόριθμοι Ταξινόμησης Μέρος 1

Αλγόριθμοι Ταξινόμησης Μέρος 1 Αλγόριθμοι Ταξινόμησης Μέρος 1 Μανόλης Κουμπαράκης 1 Το Πρόβλημα της Ταξινόμησης Το πρόβλημα της ταξινόμησης (sorting) μιας ακολουθίας στοιχείων με κλειδιά ενός γνωστού τύπου (π.χ., τους ακέραιους ή τις

Διαβάστε περισσότερα

auth Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

auth Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο Σχεδίαση Αλγορίθμων Διαίρει και Βασίλευε http://delab.csd.auth.gr/courses/algorithms/ auth 1 Διαίρει και Βασίλευε Η γνωστότερη ρημέθοδος σχεδιασμού αλγορίθμων: 1. Διαιρούμε το στιγμιότυπο του προβλήματος

Διαβάστε περισσότερα

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ταξινόµηση Mergesort Κεφάλαιο 8. Ε. Μαρκάκης Επίκουρος Καθηγητής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ταξινόµηση Mergesort Κεφάλαιο 8. Ε. Μαρκάκης Επίκουρος Καθηγητής ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Ταξινόµηση Mergesort Κεφάλαιο 8 Ε. Μαρκάκης Επίκουρος Καθηγητής Περίληψη Ταξινόµηση µε συγχώνευση Αλγόριθµος Mergesort Διµερής συγχώνευση Αφηρηµένη επιτόπου συγχώνευση Αναλυτική ταξινόµηση

Διαβάστε περισσότερα

Αλγόριθμοι Ταξινόμησης Μέρος 4

Αλγόριθμοι Ταξινόμησης Μέρος 4 Αλγόριθμοι Ταξινόμησης Μέρος 4 Μανόλης Κουμπαράκης Δομές Δεδομένων και Τεχνικές 1 Μέθοδοι Ταξινόμησης Βασισμένοι σε Συγκρίσεις Κλειδιών Οι αλγόριθμοι ταξινόμησης που είδαμε μέχρι τώρα αποφασίζουν πώς να

Διαβάστε περισσότερα

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 14: Αλγόριθμοι Ταξινόμησης Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Οι αλγόριθμοι ταξινόμησης 3) Mergesort Ταξινόμηση με Συγχώνευση 4) BucketSort Ταξινόμηση με Κάδους Διδάσκων:

Διαβάστε περισσότερα

Διάλεξη 19: Αλγόριθμοι ΤαξινόμησηςII. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 19: Αλγόριθμοι ΤαξινόμησηςII. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 19: Αλγόριθμοι ΤαξινόμησηςII Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Οι αλγόριθμοι ταξινόμησης: Γ. MergeSort Ταξινόμηση με Συγχώνευση Δ. BucketSort Ταξινόμηση με Κάδους Διδάσκων:

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Φεβρουαρίου 0 / ένδρα Ενα δένδρο είναι

Διαβάστε περισσότερα

Heapsort Using Multiple Heaps

Heapsort Using Multiple Heaps sort sort Using Multiple s. Λεβεντέας Χ. Ζαρολιάγκης Τµήµα Μηχανικών Η/Υ & Πληροφορικής 29 Αυγούστου 2008 sort 1 Ορισµός ify Build- 2 sort Πως δουλεύει Ιδιότητες 3 4 Προβλήµατα Προτάσεις Ανάλυση Κόστους

Διαβάστε περισσότερα

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i. Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

Διαβάστε περισσότερα

Ταξινόμηση: Εισαγωγικά. Ταξινόμηση (Sor ng) Αλγόριθμοι Απλής Ταξινόμησης. Βασικά Βήματα των Αλγορίθμων

Ταξινόμηση: Εισαγωγικά. Ταξινόμηση (Sor ng) Αλγόριθμοι Απλής Ταξινόμησης. Βασικά Βήματα των Αλγορίθμων Ταξινόμηση: Εισαγωγικά Ταξινόμηση (Sor ng) Ορέστης Τελέλης Βασικό πρόβλημα για την Επιστήμη των Υπολογιστών. π.χ. αλφαβητική σειρά, πωλήσεις ανά τιμή, πόλεις με βάση πληθυσμό, Μπορεί να είναι ένα πρώτο

Διαβάστε περισσότερα

Δοµές Δεδοµένων. 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι. Ε. Μαρκάκης

Δοµές Δεδοµένων. 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι. Ε. Μαρκάκης Δοµές Δεδοµένων 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι Ε. Μαρκάκης Περίληψη Bubble Sort Selection Sort Insertion Sort Χαρακτηριστικά επιδόσεων Shellsort Ταξινόµηση συνδεδεµένων λιστών Δοµές Δεδοµένων

Διαβάστε περισσότερα

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

Δομές Δεδομένων & Αλγόριθμοι Δομές Δεδομένων & Αναζήτηση & Ταξινόμηση 1 Αναζήτηση Έχω έναν πίνακα Α με Ν στοιχεία. Πρόβλημα: Βρες αν το στοιχείο x ανήκει στον πίνακα Αν ο πίνακας είναι αταξινόμητος τότε μόνη λύση σειριακή αναζήτηση

Διαβάστε περισσότερα

Ουρές Προτεραιότητας: Υπενθύμιση. Σωροί / Αναδρομή / Ταξινόμηση. Υλοποίηση Σωρού. Σωρός (Εισαγωγή) Ορέστης Τελέλης

Ουρές Προτεραιότητας: Υπενθύμιση. Σωροί / Αναδρομή / Ταξινόμηση. Υλοποίηση Σωρού. Σωρός (Εισαγωγή) Ορέστης Τελέλης Ουρές Προτεραιότητας: Υπενθύμιση Σωροί / Αναδρομή / Ταξινόμηση Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς (Abstract Data Type) με μεθόδους: Μπορεί να υλοποιηθεί με

Διαβάστε περισσότερα

Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort

Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Η διαδικασία PercolateDown, Δημιουργία Σωρού O Αλγόριθμος Ταξινόμησης HeapSort Υλοποίηση, Παραδείγματα

Διαβάστε περισσότερα

Πληροφορική 2. Αλγόριθμοι

Πληροφορική 2. Αλγόριθμοι Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται

Διαβάστε περισσότερα

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

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Γιάννης Κουτσονίκος Επίκουρος Καθηγητής Οργάνωση Δεδομένων Δομή Δεδομένων: τεχνική οργάνωσης των δεδομένων με σκοπό την

Διαβάστε περισσότερα

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο Πολλαπλασιασμός μεγάλων ακεραίων (1) Για να πολλαπλασιάσουμε δύο ακεραίους με n 1 και n 2 ψηφία με το χέρι, θα εκτελέσουμε n 1 n 2 πράξεις πολλαπλασιασμού Πρόβλημα ρβημ όταν έχουμε πολλά ψηφία: A = 12345678901357986429

Διαβάστε περισσότερα

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης Δοµές Δεδοµένων 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων Ε. Μαρκάκης Περίληψη Quicksort Χαρακτηριστικά επιδόσεων Μη αναδροµική υλοποίηση Δέντρα Μαθηµατικές ιδιότητες Δοµές Δεδοµένων 11-2

Διαβάστε περισσότερα

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

Ουρά Προτεραιότητας: Heap Ουρά Προτεραιότητας: Heap Επιμέλεια διαφανειών: Δ. Φωτάκης (λίγες τροποποιήσεις: Α. Παγουρτζής) Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Δομές Δεδομένων (Αναπαράσταση,)

Διαβάστε περισσότερα

Σχεδίαση και Ανάλυση Αλγορίθμων

Σχεδίαση και Ανάλυση Αλγορίθμων Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 2.0 Πολυπλοκότητα Αλγορίθμων Ασυμπτωτική Πολυπλοκότητα Αναδρομικές Σχέσεις Σταύρος Δ. Νικολόπουλος 2016-17 Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων

Διαβάστε περισσότερα

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

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Ανάλυση Αλγορίθμων Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανάλυση Αλγορίθμων Η ανάλυση αλγορίθμων περιλαμβάνει τη διερεύνηση του τρόπου

Διαβάστε περισσότερα

Ταχεία Ταξινόμηση Quick-Sort

Ταχεία Ταξινόμηση Quick-Sort Ταχεία Ταξινόμηση Quc-Sort 7 4 9 6 2 2 4 6 7 9 4 2 2 4 7 9 7 9 2 2 9 9 Δομές Δεδομένων και Αλγόριθμοι Εργαστήριο Γνώσης και Ευφυούς Πληροφορικής 1 Outlne Quc-sort Αλγόριθμος Βήμα διαχωρισμού Δένδρο Quc-sort

Διαβάστε περισσότερα

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

ΑΛΓΟΡΙΘΜΟΙ  Άνοιξη I. ΜΗΛΗΣ ΑΛΓΟΡΙΘΜΟΙ http://eclass.aueb.gr/courses/inf161/ Άνοιξη 2016 - I. ΜΗΛΗΣ ΠΑΡΑΔΕΙΓΜΑΤΑ ΑΛΓΟΡΙΘΜΩΝ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 2016 - Ι. ΜΗΛΗΣ - 03 - EXAMPLES ALG & COMPL 1 Example: GCD συνάρτηση

Διαβάστε περισσότερα

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

ιαφάνειες παρουσίασης #4 ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ http://www.softlab.ntua.gr/~nickie/courses/progtech/ ιδάσκοντες: Γιάννης Μαΐστρος (maistros@cs.ntua.gr) Στάθης Ζάχος (zachos@cs.ntua.gr) (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης

Διαβάστε περισσότερα

Εργαστηριακή Άσκηση 1

Εργαστηριακή Άσκηση 1 Εργαστηριακή Άσκηση 1 Επανάληψη προγραμματισμού Βασικοί Αλγόριθμοι Είσοδος τιμών από το πληκτρολόγιο Σε όλα τα προγράμματα που θα γράψουμε στην συνέχεια του εξαμήνου θα χρειαστεί να εισάγουμε τιμές σε

Διαβάστε περισσότερα

Διαίρει-και-Βασίλευε. Διαίρει-και-Βασίλευε. MergeSort. MergeSort. Πρόβλημα Ταξινόμησης: Είσοδος : ακολουθία n αριθμών (α 1

Διαίρει-και-Βασίλευε. Διαίρει-και-Βασίλευε. MergeSort. MergeSort. Πρόβλημα Ταξινόμησης: Είσοδος : ακολουθία n αριθμών (α 1 Διαίρει-και-Βασίλευε Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Διαίρει-και-Βασίλευε Γενική μέθοδος

Διαβάστε περισσότερα

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 23 Μαρτίου 2017 1 / 20 Επιλογή Το πρόβληµα

Διαβάστε περισσότερα

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

Στοιχεία Αλγορίθµων και Πολυπλοκότητας Στοιχεία Αλγορίθµων και Πολυπλοκότητας Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 1 / 16 «Ζέσταµα» Να γράψετε τις συναρτήσεις

Διαβάστε περισσότερα

Προχωρημένες έννοιες προγραμματισμού σε C

Προχωρημένες έννοιες προγραμματισμού σε C Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr)

Διαβάστε περισσότερα

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

Επιλογή. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο Επιλογή ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Πρόβλημα Επιλογής Πίνακας Α[]με n στοιχεία (όχι ταξινομημένος). Αριθμός k, 1 k n. Υπολογισμός

Διαβάστε περισσότερα

Ταξινόμηση. 1. Ταξινόμηση του Shell. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

Ταξινόμηση. 1. Ταξινόμηση του Shell. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Ταξινόμηση. Ταξινόμηση του Shell Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Ταξινόμηση του Shell Η μέθοδος που προτάθηκε από τον Shell έχει βασικό χαρακτηριστικό ότι χρησιμοποιεί µία ακολουθία ακεραίων

Διαβάστε περισσότερα

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ.

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. Διάλεξη 13: Αλγόριθμοι Ταξινόμησης Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Οι αλγόριθμοι ταξινόμησης SelectionSort, InsertionSort, Στις ερχόμενες διαλέξεις θα δούμε τους αλγόριθμους Mergesort,

Διαβάστε περισσότερα

Ταξινόμηση. 1. Ταξινόμηση με Μέτρημα 2. Ταξινόμηση με βάση τη Ρίζα. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

Ταξινόμηση. 1. Ταξινόμηση με Μέτρημα 2. Ταξινόμηση με βάση τη Ρίζα. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Ταξινόμηση 1. Ταξινόμηση με Μέτρημα 2. Ταξινόμηση με βάση τη Ρίζα Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Ταξινόμηση με Μέτρημα Ας υποθέσουμε ότι δίνεται ένας πίνακας Α με n στοιχεία, που λαμβάνουν

Διαβάστε περισσότερα

Επιλογή. Επιμέλεια διαφανειών: Δ. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

Επιλογή. Επιμέλεια διαφανειών: Δ. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο Επιλογή Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Πρόβλημα Επιλογής Πίνακας Α[ ] με n στοιχεία (όχι ταξινομημένος). Αριθμός k,

Διαβάστε περισσότερα

Quicksort [Hoare, 62] Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Quicksort 1

Quicksort [Hoare, 62] Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Quicksort 1 Quicksort [Hoare, 62] Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Quicksort 1 Quicksort [Hoare, 62] Στοιχείο διαχωρισµού (pivot), π.χ. πρώτο, τυχαίο, Αναδιάταξη και διαίρεση εισόδου σε δύο υπο-ακολουθίες:

Διαβάστε περισσότερα

Ταξινόµηση. Παύλος Εφραιµίδης. οµές εδοµένων και

Ταξινόµηση. Παύλος Εφραιµίδης. οµές εδοµένων και Παύλος Εφραιµίδης 1 Το πρόβληµα της ταξινόµησης 2 3 ίνεται πολυ-σύνολο Σ µε στοιχεία από κάποιο σύµπαν U (πχ. U = το σύνολο των ακεραίων αριθµών). του Σ είναι η επιβολή µιας διάταξης στα στοιχεία του συνόλου

Διαβάστε περισσότερα

Quicksort. Επιμέλεια διαφανειών: Δ. Φωτάκης Μικροαλλαγές: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Quicksort. Επιμέλεια διαφανειών: Δ. Φωτάκης Μικροαλλαγές: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Quicksort Επιμέλεια διαφανειών: Δ. Φωτάκης Μικροαλλαγές: Α. Παγουρτζής Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Quicksort [Hoare, 6] Στοιχείο διαχωρισμού (pivot),

Διαβάστε περισσότερα

Επιλογή. Πρόβλημα Επιλογής. Μέγιστο / Ελάχιστο. Εφαρμογές

Επιλογή. Πρόβλημα Επιλογής. Μέγιστο / Ελάχιστο. Εφαρμογές Επιλογή Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Πρόβλημα Επιλογής Πίνακας Α[]με n στοιχεία (όχι ταξινομημένος). Αριθμός

Διαβάστε περισσότερα

Εργαστήριο 7: Ο αλγόριθμος ταξινόμησης Radix Sort

Εργαστήριο 7: Ο αλγόριθμος ταξινόμησης Radix Sort Εργαστήριο 7: Ο αλγόριθμος ταξινόμησης Radix Sort Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Ο αλγόριθμος ταξινόμησης Radix Sort -Δυο εκδοχές: Most Significant Digit (MSD) και Least Significant

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 3: Ασυμπτωτικός συμβολισμός Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

Quicksort. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

Quicksort. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο Quicksort ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Quicksort [Hoare, 62] Στοιχείο διαχωρισμού (pivot), π.χ. πρώτο, τυχαίο, Αναδιάταξη και διαίρεση

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 4: Αναδρομικές σχέσεις και ανάλυση αλγορίθμων Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

Δοµές Δεδοµένων. 10η Διάλεξη Ταξινόµηση. E. Μαρκάκης

Δοµές Δεδοµένων. 10η Διάλεξη Ταξινόµηση. E. Μαρκάκης Δοµές Δεδοµένων 10η Διάλεξη Ταξινόµηση E. Μαρκάκης Περίληψη Ταξινόµηση µε αριθµοδείκτη κλειδιού Ταξινόµηση µε συγχώνευση Αλγόριθµος Mergesort Διµερής συγχώνευση Αφηρηµένη επιτόπου συγχώνευση Αναλυτική

Διαβάστε περισσότερα

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

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 12 η Αναζήτηση/Ταξινόμηση Πίνακα Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην

Διαβάστε περισσότερα

Σχεδίαση & Ανάλυση Αλγορίθμων

Σχεδίαση & Ανάλυση Αλγορίθμων Σχεδίαση & Ανάλυση Αλγορίθμων Ενότητα 1 Αλγόριθμοι και Πολυπλοκότητα Σταύρος Δ. Νικολόπουλος Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros Εισαγωγή Ας ξεκινήσουμε

Διαβάστε περισσότερα

Δοµές Δεδοµένων. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 2

Δοµές Δεδοµένων. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 2 Δοµές Δεδοµένων Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 2 Δοµές Δεδοµένων (Αναπαράσταση,) οργάνωση και διαχείριση συνόλων αντικειµένων για αποδοτική ενηµέρωση και ανάκτηση πληροφορίας.

Διαβάστε περισσότερα

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

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 20: Αλγόριθμοι ΤαξινόμησηςIII Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Οι αλγόριθμοι ταξινόμησης: Ε. QuickSort Γρήγορη Ταξινόμηση - Έμμεση Ταξινόμηση - Εξωτερική Ταξινόμηση Διδάσκων:

Διαβάστε περισσότερα

Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I

Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Οι αλγόριθμοι ταξινόμησης: Α. SelectoSort Ταξινόμηση με Επιλογή Β. IsertoSort Ταξινόμηση με Εισαγωγή Γ. MergeSort

Διαβάστε περισσότερα

Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort)

Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort) ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort) Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Ταχυταξινόμηση (Quick-Sort) 7 4 9 6 2 2 4 6 7 9 4 2 2 4 7 9 7

Διαβάστε περισσότερα

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης Σύνοψη Προηγούμενου Πίνακες (Arrays Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Διαδικαστικά θέματα. Aντικείμενο Μαθήματος. Aντικείμενα, Κλάσεις, Μέθοδοι, Μεταβλητές.

Διαβάστε περισσότερα

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 4: Διαίρει και Βασίλευε. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 4: Διαίρει και Βασίλευε. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΛΓΟΡΙΘΜΟΙ Ενότητα 4: Διαίρει και Βασίλευε Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Άδειες Χρήσης Το παρόν

Διαβάστε περισσότερα

Ο αλγόριθμος Quick-Sort. 6/14/2007 3:42 AM Quick-Sort 1

Ο αλγόριθμος Quick-Sort. 6/14/2007 3:42 AM Quick-Sort 1 Ο αλγόριθμος Quick-Sort 7 4 9 6 2 2 4 6 7 9 4 2 2 4 7 9 7 9 2 2 9 9 6/14/2007 3:42 AM Quick-Sort 1 Κύρια σημεία για μελέτη Quick-sort ( 4.3) Αλγόριθμος Partition step Δέντρο Quick-sort Παράδειγμα εκτέλεσης

Διαβάστε περισσότερα

242 -ΕισαγωγήστουςΗ/Υ

242 -ΕισαγωγήστουςΗ/Υ 1 242 -ΕισαγωγήστουςΗ/Υ ΤµήµαΜαθηµατικών, Πανεπιστήµιο Ιωαννίνων Άρτια Α.Μ. (0-2-4-6-8) 2 ήλωση: Πίνακες στην ΕΑΓ δηλωση ( [1 : 1, 1 : 2,..., 1: ν ] ) παραταξη ; Π.χ.: δηλωση

Διαβάστε περισσότερα

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 8 Quick Sort 1 / 11 Ο αλγόριθμος QuickSort 1 Προτάθηκε από τον CAR (Tony) Hoare το 1961 2 Ο αλγόριθμος

Διαβάστε περισσότερα

Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο

Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο Ουρές προτεραιότητας Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο αριθμός είναι μεγάλος, τόσο οι πελάτες

Διαβάστε περισσότερα

Επιλογή. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Επιλογή. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Επιλογή ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

Πρόβληµα Επιλογής. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Επιλογή 1

Πρόβληµα Επιλογής. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Επιλογή 1 Πρόβληµα Επιλογής Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Επιλογή 1 Πρόβληµα Επιλογής Πίνακας Α[ Αριθµός k, 1 k n. ] µε n στοιχεία (όχι ταξινοµηµένος). Υπολογισµός του k-οστού µικρότερου στοιχείου (στοιχείο

Διαβάστε περισσότερα

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

Ουρά Προτεραιότητας: Heap Δομές Δεδομένων Ουρά Προτεραιότητας: Heap Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο (Αναπαράσταση,)

Διαβάστε περισσότερα

Ουρά Προτεραιότητας (priority queue)

Ουρά Προτεραιότητας (priority queue) Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει τις ακόλουθες λειτουργίες PQinsert : εισαγωγή στοιχείου PQdelmax : επιστροφή του στοιχείου με το μεγαλύτερο* κλειδί και διαγραφή του

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ 1 ΚΕΦΑΛΑΙΟ ΟΙ ΥΠΟΛΟΓΙΣΤΕΣ ΑΠΟ ΤΗΝ ΑΡΧΑΙΟΤΗΤΑ ΜΕΧΡΙ ΣΗΜΕΡΑ Ιστορική αναδρομή Υπολογιστικές μηχανές

ΠΕΡΙΕΧΟΜΕΝΑ 1 ΚΕΦΑΛΑΙΟ ΟΙ ΥΠΟΛΟΓΙΣΤΕΣ ΑΠΟ ΤΗΝ ΑΡΧΑΙΟΤΗΤΑ ΜΕΧΡΙ ΣΗΜΕΡΑ Ιστορική αναδρομή Υπολογιστικές μηχανές ΠΕΡΙΕΧΟΜΕΝΑ 1 ΚΕΦΑΛΑΙΟ 1... 11 ΟΙ ΥΠΟΛΟΓΙΣΤΕΣ ΑΠΟ ΤΗΝ ΑΡΧΑΙΟΤΗΤΑ ΜΕΧΡΙ... 11 ΣΗΜΕΡΑ... 11 1.1 Ιστορική αναδρομή... 13 1.1.1 Υπολογιστικές μηχανές στην αρχαιότητα... 13 1.1.2 17ο έως τον 19ο... 14 1.1.3

Διαβάστε περισσότερα

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

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Συγχωνευτική Ταξινόμηση (Merge Sort) 7 2 9 4 2 4 7 9 7 2 2 7 9 4

Διαβάστε περισσότερα

Εισαγωγή στην Ανάλυση Αλγορίθμων (1) Διαφάνειες του Γ. Χ. Στεφανίδη

Εισαγωγή στην Ανάλυση Αλγορίθμων (1) Διαφάνειες του Γ. Χ. Στεφανίδη Εισαγωγή στην Ανάλυση Αλγορίθμων (1) Διαφάνειες του Γ. Χ. Στεφανίδη 0. Εισαγωγή Αντικείμενο μαθήματος: Η θεωρητική μελέτη ανάλυσης των αλγορίθμων. Στόχος: επιδόσεις των επαναληπτικών και αναδρομικών αλγορίθμων.

Διαβάστε περισσότερα

Quicksort. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Quicksort. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Quicksort ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο Σχεδίαση Αλγορίθμων Διαίρει και Βασίλευε http://delab.csd.auth.gr/~gounaris/courses/ad auth gounaris/courses/ad 1 Διαίρει και Βασίλευε Η γνωστότερη ρημέθοδος σχεδιασμού αλγορίθμων: 1. Διαιρούμε το στιγμιότυπο

Διαβάστε περισσότερα

Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ουρές Προτεραιότητας Σωροί υλοποίηση και πράξεις Ο αλγόριθμος ταξινόμησης HeapSort

Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ουρές Προτεραιότητας Σωροί υλοποίηση και πράξεις Ο αλγόριθμος ταξινόμησης HeapSort Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ουρές Προτεραιότητας Σωροί υλοποίηση και πράξεις Ο αλγόριθμος ταξινόμησης HeapSort ΕΠΛ 231 Δομές Δεδομένων και Αλγόριθμοι 9-1 Ουρά προτεραιότητας

Διαβάστε περισσότερα

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

Εισαγωγή στην Επεξεργασία Ερωτήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων 1 Επεξεργασία Ερωτήσεων Θα δούμε την «πορεία» μιας SQL ερώτησης (πως εκτελείται) Ερώτηση SQL Ερώτηση ΣΒΔ Αποτέλεσμα 2 Βήματα Επεξεργασίας Τα βασικά βήματα στην επεξεργασία

Διαβάστε περισσότερα

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

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

Διαβάστε περισσότερα

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

Δομές Δεδομένων & Αλγόριθμοι - Πίνακες 1 Πίνακες Οι πίνακες έχουν σταθερό μέγεθος και τύπο δεδομένων. Βασικά πλεονεκτήματά τους είναι η απλότητα προγραμματισμού τους και η ταχύτητα. Ωστόσο δεν παρέχουν την ευελιξία η οποία απαιτείται

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 8β: Ταξινόμηση-Ταξινόμηση του Shell Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

Διαβάστε περισσότερα

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

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 9-1 Σωροί Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Ουρές Προτεραιότητας Σωροί υλοποίηση και πράξεις Ο αλγόριθµος ταξινόµησης HeapSort Παραλλαγές Σωρών ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι

Διαβάστε περισσότερα

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

Εισαγωγή στην Ανάλυση Αλγορίθμων Εισαγωγή στην Ανάλυση Αλγορίθμων (4) Μεθοδολογία αναδρομικών σχέσεων (Ι) Με επανάληψη της αναδρομής Έστω όπου r και a είναι σταθερές. Βρίσκουμε τη σχέση που εκφράζει την T(n) συναρτήσει της T(n-) την T(n)

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 1: Εισαγωγή Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων ΕΠΛ31 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα

Διαβάστε περισσότερα