Heapsort Using Multiple Heaps

Σχετικά έγγραφα
Κεφάλαιο 2. Η δοµή δεδοµένων Σωρός και η Ταξινόµηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.1, 12/05/2010

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

Κεφάλαιο 2. Η δομή δεδομένων Σωρός και η Ταξινόμηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.3, 14/11/2014

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

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ουρές προτεραιότητας Κεφάλαιο 9. Ε. Μαρκάκης Επίκουρος Καθηγητής

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ουρές προτεραιότητας Κεφάλαιο 9. Ε. Μαρκάκης Επίκουρος Καθηγητής

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

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

Ν. Μ. Μισυρλής. Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών. Καθηγητής: Ν. Μ. Μισυρλής 29 Μαΐου / 18

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

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

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

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

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

σωροί ταξινόμηση σωρού οόροςheap σωρός (heap) συστοιχία Α για έναν σωρό μια δομή δεδομένων που πχ.

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

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

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

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

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

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

Βασική Εφικτή Λύση. Βασική Εφικτή Λύση

Δοµές Δεδοµένων. 2η Διάλεξη Αλγόριθµοι Ένωσης-Εύρεσης (Union-Find) Ε. Μαρκάκης. Βασίζεται στις διαφάνειες των R. Sedgewick K.

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

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

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

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

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

Ουρές προτεραιότητας

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

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

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

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

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

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

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

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

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

Επεξεργασία Ερωτήσεων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

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

ΕΝΟΤΗΤΑ 7 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ ΣΩΡΟΙ

Αλγόριθµοι. Παράδειγµα. ιαίρει και Βασίλευε. Παράδειγµα MergeSort. Τεχνικές Σχεδιασµού Αλγορίθµων

8. Σωροί (Heaps)-Αναδρομή- Προχωρημένη Ταξινόμηση

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

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

Δοµές Δεδοµένων. 12η Διάλεξη Διάσχιση Δέντρων και Ουρές Προτεραιότητας. Ε. Μαρκάκης

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

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

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

Προγραμματισμός Ι (ΗΥ120)

Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

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

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

ΚΕΦΑΛΑΙΟ Μηχανική Μάθηση

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

Κατ οίκον Εργασία 2 Σκελετοί Λύσεων

Αριθµητική Ανάλυση 1 εκεµβρίου / 43

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

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

Αξιολόγηση Ευριστικών Αλγορίθµων

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

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

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

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

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

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

Προγραµµατισµός 1 Ταξινόµηση - Αναζήτηση

Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17)

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε:

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

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

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

Εισαγωγή. Γενική Εικόνα του Μαθήµατος. Το εσωτερικό ενός Σ Β. Εισαγωγή. Εισαγωγή Σ Β Σ Β. Αρχεία ευρετηρίου Κατάλογος συστήµατος Αρχεία δεδοµένων

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

Το εσωτερικό ενός Σ Β

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ

Προγραµµατιστικές Τεχνικές

Κατ οίκον Εργασία 5 Σκελετοί Λύσεων

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ. n! = 1*2*3*..(n-1)*n. n! = 1 αν n = 0, = n*(n-1)! αν n > ΑΝΑ ΡΟΜΗ Εισαγωγή

Σχήµα 3.1: Εισαγωγή shift register σε βρόγχο for-loop.

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΑΣΚΗΣΗ ΔΕΥΤΕΡΗ

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

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

Βασικές Προτάσεις. έντρα. υαδικά έντρα Αναζήτησης ( Α) Ισοζυγισµένα έντρα και Υψος. Κάθε δέντρο µε n κόµβους έχει n 1 ακµές.

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

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

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

Επεξεργασία Ερωτήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Transcript:

sort sort Using Multiple s. Λεβεντέας Χ. Ζαρολιάγκης Τµήµα Μηχανικών Η/Υ & Πληροφορικής 29 Αυγούστου 2008

sort 1 Ορισµός ify Build- 2 sort Πως δουλεύει Ιδιότητες 3 4 Προβλήµατα Προτάσεις Ανάλυση Κόστους 5

sort Το heapsort προτάθηκε το 1964 από τον Williams.

sort Το heapsort προτάθηκε το 1964 από τον Williams. Η σχετική έρευνα επικεντρώθηκε: Κατασκευή του heap (Build-) - [Wegener, (1993)] Επαναφορά της ιδιότητας του σωρού ify- [Schaffer and Sedgewick, (1993)] Στην δοµή του σωρού - [Edelkamp and Wegener, (2000)]

sort Το heapsort προτάθηκε το 1964 από τον Williams. Η σχετική έρευνα επικεντρώθηκε: Κατασκευή του heap (Build-) - [Wegener, (1993)] Επαναφορά της ιδιότητας του σωρού ify- [Schaffer and Sedgewick, (1993)] Στην δοµή του σωρού - [Edelkamp and Wegener, (2000)] Χρήση πολλών σωρών αντί για ενός.

sort Επικεντρωνόµαστε στην διαδικασία εξαγωγής του επόµενου στοιχείου

sort Επικεντρωνόµαστε στην διαδικασία εξαγωγής του επόµενου στοιχείου Παρουσιάζουµε δυο τροποποιήσεις του αλγορίθµου του Williams

sort Επικεντρωνόµαστε στην διαδικασία εξαγωγής του επόµενου στοιχείου Παρουσιάζουµε δυο τροποποιήσεις του αλγορίθµου του Williams Σκοπός µας είναι αλλάζοντας µικρό µέρος του κώδικα ιατήρηση της ιδιότητας ταξινόµησης in-place Ταχύτερη εξαγωγή τελικού αποτελέσµατος

Ορισµός sort Ορισµός ify Build- Ορισµός Ενας σωρός (min-heap) είναι ένας πίνακας στοιχείων a j, 1 j n που ικανοποιεί την µονοτονική ιδιότητα µονοπατιού (path-monotonic property): a j a j για j = 2, 3,..., n όπου x είναι το ακέραιο 2 υπόλοιπο του πραγµατικού αριθµού x

Παράδειγµα sort Ορισµός ify Build- Σε µορφή δέντρου: 1 2 5 3 13 21 8 Σε µορφή πίνακα: 1 2 5 3 13 21 8

Ορισµός sort Ορισµός ify Build- Ορισµός Θεωρούµε ένα πίνακα A και τον δείκτη i. Τα υποδέντρα που έχουν ως ϱίζα τους τα παιδιά του A[i] είναι ήδη σωροί, αλλά το ίδιο το δέντρο µε ϱίζα το A[i] µπορεί να παραβιάζει την ιδιότητα του σωρού. Η διαδικασία ify κάνει τις απαραίτητες αλλαγές ώστε το δέντρο µε ϱίζα το A[i] να γίνει σωρός.

Παράδειγµα sort Ορισµός ify Build- Σε µορφή δέντρου: 21 2 1 3 13 5 8 Σε µορφή πίνακα: 21 2 1 3 13 5 8

Παράδειγµα sort Ορισµός ify Build- Σε µορφή δέντρου: 1 2 21 3 13 5 8 Σε µορφή πίνακα: 1 2 21 3 13 5 8

Παράδειγµα sort Ορισµός ify Build- Σε µορφή δέντρου: 1 2 5 3 13 21 8 Σε µορφή πίνακα: 1 2 5 3 13 21 8

Ορισµός sort Ορισµός ify Build- Ορισµός Μπορούµε να χρησιµοποιήσουµε την συνάρτηση ify µε µια προσέγγιση από κάτω προς τα πάνω (bottom-up) ώστε να µετατρέψουµε ένα πίνακα A[1..n] σε ένα σωρό. Αφού όλα τα στοιχεία στον υποπίνακα A[ n + 1..n] είναι ϕύλλα, η build_heap επισκέπτεται 2 τους υπόλοιπους κόµβους και καλεί την ify σε κάθε έναν.

sort sort - Πως δουλεύει Πως δουλεύει Ιδιότητες 1 ηµιουργία ενός σωρού heap - (Build-)

sort sort - Πως δουλεύει Πως δουλεύει Ιδιότητες 1 ηµιουργία ενός σωρού heap - (Build-) 2 Εύρεση µικρότερης τιµής (root)

sort sort - Πως δουλεύει Πως δουλεύει Ιδιότητες 1 ηµιουργία ενός σωρού heap - (Build-) 2 Εύρεση µικρότερης τιµής (root) 3 Εναλλαγή µε το τελευταίο αταξινόµητο στοιχείο (ϕύλλο του σωρού)

sort sort - Πως δουλεύει Πως δουλεύει Ιδιότητες 1 ηµιουργία ενός σωρού heap - (Build-) 2 Εύρεση µικρότερης τιµής (root) 3 Εναλλαγή µε το τελευταίο αταξινόµητο στοιχείο (ϕύλλο του σωρού) 4 Επαναφορά της ιδιότητας του σωρού για τα υπόλοιπα αταξινόµητα στοιχεία µέσα στο array (heapify)

sort sort - Πως δουλεύει Πως δουλεύει Ιδιότητες 1 ηµιουργία ενός σωρού heap - (Build-) 2 Εύρεση µικρότερης τιµής (root) 3 Εναλλαγή µε το τελευταίο αταξινόµητο στοιχείο (ϕύλλο του σωρού) 4 Επαναφορά της ιδιότητας του σωρού για τα υπόλοιπα αταξινόµητα στοιχεία µέσα στο array (heapify) 5 Επανάληψη της διαδικασίας από το 2ο ϐήµα µέχρι να ταξινοµηθούν όλα τα στοιχεία του πίνακα.

Παράδειγµα sort Πως δουλεύει Ιδιότητες Σε µορφή δέντρου: 1 2 5 3 11 13 7 Σε µορφή πίνακα: 1 2 5 3 11 13 7

Παράδειγµα sort Πως δουλεύει Ιδιότητες Σε µορφή δέντρου: 7 2 5 3 11 13 Σε µορφή πίνακα: 7 2 5 3 11 13 1

Παράδειγµα sort Πως δουλεύει Ιδιότητες Σε µορφή δέντρου: 2 7 5 3 11 13 Σε µορφή πίνακα: 2 7 5 3 11 13 1

Παράδειγµα sort Πως δουλεύει Ιδιότητες Σε µορφή δέντρου: 2 3 5 7 11 13 Σε µορφή πίνακα: 2 3 5 7 11 13 1

Παράδειγµα sort Πως δουλεύει Ιδιότητες Σε µορφή δέντρου: 13 3 5 7 11 Σε µορφή πίνακα: 13 3 5 7 11 2 1

Παράδειγµα sort Πως δουλεύει Ιδιότητες Σε µορφή δέντρου: 3 13 5 7 11 Σε µορφή πίνακα: 3 13 5 7 11 2 1

Παράδειγµα sort Πως δουλεύει Ιδιότητες Σε µορφή δέντρου: 3 7 5 13 11 Σε µορφή πίνακα: 3 7 5 13 11 2 1

Παράδειγµα sort Πως δουλεύει Ιδιότητες Σε µορφή δέντρου: 11 7 5 13 Σε µορφή πίνακα: 11 7 5 13 3 2 1

Παράδειγµα sort Πως δουλεύει Ιδιότητες Προχωρώντας παροµοίως έχουµε σταδιακά: 1 5 7 11 13 3 2 1

Παράδειγµα sort Πως δουλεύει Ιδιότητες Προχωρώντας παροµοίως έχουµε σταδιακά: 1 5 7 11 13 3 2 1 2 7 13 11 5 3 2 1

Παράδειγµα sort Πως δουλεύει Ιδιότητες Προχωρώντας παροµοίως έχουµε σταδιακά: 1 5 7 11 13 3 2 1 2 7 13 11 5 3 2 1 3 11 13 7 5 3 2 1

Παράδειγµα sort Πως δουλεύει Ιδιότητες Προχωρώντας παροµοίως έχουµε σταδιακά: 1 5 7 11 13 3 2 1 2 7 13 11 5 3 2 1 3 11 13 7 5 3 2 1 4 Και τέλος έχουµε ταξινοµηµένους τους επτά πρώτους αριθµούς 13 11 7 5 3 2 1

sort - Ιδιότητες sort Πως δουλεύει Ιδιότητες Ταξινόµηση in-place

sort - Ιδιότητες sort Πως δουλεύει Ιδιότητες Ταξινόµηση in-place Ταξινόµηση σε O(n log n)

sort - Ιδιότητες sort Πως δουλεύει Ιδιότητες Ταξινόµηση in-place Ταξινόµηση σε O(n log n) Ασυµπτωτικά ϐέλτιστο για οποιοδήποτε αλγόριθµο ταξινόµησης ϐασισµένο σε συγκρίσεις Ω(n log n)

- Παρατηρήσεις sort Υπάρχουν διάφοροι τρόποι που µπορούµε να εξετάσουµε έναν σωρό

- Παρατηρήσεις sort Υπάρχουν διάφοροι τρόποι που µπορούµε να εξετάσουµε έναν σωρό 5 7 11 13

- Παρατηρήσεις sort Υπάρχουν διάφοροι τρόποι που µπορούµε να εξετάσουµε έναν σωρό 13 7 11 5

- Παρατηρήσεις sort Αναδροµική προσέγγιση - Μετά από την αφαίρεση της ϱίζας ενός heap τα δέντρα που σχηµατίζονται αποτελούν ανεξάρτητα heaps

- Παρατηρήσεις sort Αναδροµική προσέγγιση - Μετά από την αφαίρεση της ϱίζας ενός heap τα δέντρα που σχηµατίζονται αποτελούν ανεξάρτητα heaps Σε µορφή δέντρου: 2 3 5 7 11 13

- Παρατηρήσεις sort Αναδροµική προσέγγιση - Μετά από την αφαίρεση της ϱίζας ενός heap τα δέντρα που σχηµατίζονται αποτελούν ανεξάρτητα heaps Σε µορφή δέντρου: 3 5 7 11 13

sort Αρχική ιδέα - Χρήση δυο σωρών Μετά την αφαίρεση της ϱίζας το επόµενο στοιχείο ϑα είναι η ϱίζα ενός από τα δυο heaps

sort Αρχική ιδέα - Χρήση δυο σωρών Μετά την αφαίρεση της ϱίζας το επόµενο στοιχείο ϑα είναι η ϱίζα ενός από τα δυο heaps Απαιτείται µόλις µια σύγκριση 3 5 7 11 13

sort Μερική Χρήση δυο σωρών Μετά την αφαίρεση της ϱίζας το επόµενο στοιχείο ϑα είναι η ϱίζα ενός από τα δυο heaps Απαιτείται µόλις µια σύγκριση 5 7 11 13

Παράδειγµα sort Σταδιακή επανασύσταση του σωρού 13 5 7 11

Παράδειγµα sort Σταδιακή επανασύσταση του σωρού 7 5 11 13

Παράδειγµα sort Μεταφορά τελευταίου στοιχείου στην ϱίζα 13 7 5 11

Παράδειγµα sort Τελευταίο ϐήµα επαναφοράς της σωρού 5 7 13 11

Παρατηρήσεις sort Ολες οι ιδιότητες του heapsort διατηρούνται

Παρατηρήσεις sort Ολες οι ιδιότητες του heapsort διατηρούνται Με µια σύγκριση, τοποθετούµε το στοιχείο στην ϱίζα ενός heap µε µικρότερο ύψος

Παρατηρήσεις sort Ολες οι ιδιότητες του heapsort διατηρούνται Με µια σύγκριση, τοποθετούµε το στοιχείο στην ϱίζα ενός heap µε µικρότερο ύψος Στα µισά ϐήµατα (iterations) όµως, δεν έχει αλλάξει τίποτα

sort Προβλήµατα Προτάσεις Ανάλυση Κόστους Χρήση N σωρών - Πλήρης αξιοποίηση Χρήση όλων των σωρών σε όλα τα ϐήµατα του αλγορίθµου

sort Προβλήµατα Προτάσεις Ανάλυση Κόστους Χρήση N σωρών - Πλήρης αξιοποίηση Χρήση όλων των σωρών σε όλα τα ϐήµατα του αλγορίθµου Σκοπός: Μεγιστοποίηση κέρδους σε απόδοση

sort Προβλήµατα Προτάσεις Ανάλυση Κόστους Χρήση N σωρών - Πλήρης αξιοποίηση Χρήση όλων των σωρών σε όλα τα ϐήµατα του αλγορίθµου Σκοπός: Μεγιστοποίηση κέρδους σε απόδοση Παράπλευρο κέρδος: Εµφάνιση δυνατοτήτων παραλληλοποίησης

Προβλήµατα sort Προβλήµατα Προτάσεις Ανάλυση Κόστους ιατήρηση της ιδιότητας της ταξινόµησης in-place

Προβλήµατα sort Προβλήµατα Προτάσεις Ανάλυση Κόστους ιατήρηση της ιδιότητας της ταξινόµησης in-place Οργάνωση σωρών σε µορφή πίνακα

Προβλήµατα sort Προβλήµατα Προτάσεις Ανάλυση Κόστους ιατήρηση της ιδιότητας της ταξινόµησης in-place Οργάνωση σωρών σε µορφή πίνακα Αποτελεσµατική εύρεση των ϕύλλων των σωρών

Πρώτη σκέψη sort Προβλήµατα Προτάσεις Ανάλυση Κόστους Ο ένας σωρός µετά τον άλλο ανεξάρτητα

Πρώτη σκέψη sort Προβλήµατα Προτάσεις Ανάλυση Κόστους Ο ένας σωρός µετά τον άλλο ανεξάρτητα Αποτυγχάνει

Πρώτη σκέψη sort Προβλήµατα Προτάσεις Ανάλυση Κόστους Ο ένας σωρός µετά τον άλλο ανεξάρτητα Αποτυγχάνει Μένουν κενά ανάµεσα στις σωρούς

Προτεινόµενη Λύση sort Προβλήµατα Προτάσεις Ανάλυση Κόστους Πολύπλεξη των σωρών

Προτεινόµενη Λύση sort Προβλήµατα Προτάσεις Ανάλυση Κόστους Πολύπλεξη των σωρών Προσδιορισµός παιδιών Αριστερό παιδί: 2i + N εξί παιδί: 2i + N + 1 Γονιός: i N 2

Αλγόριθµος sort Προβλήµατα Προτάσεις Ανάλυση Κόστους 1 ηµιουργία N σωρών heap - (Build-)

Αλγόριθµος sort Προβλήµατα Προτάσεις Ανάλυση Κόστους 1 ηµιουργία N σωρών heap - (Build-) 2 Εύρεση µικρότερης ϱίζας (root)

Αλγόριθµος sort Προβλήµατα Προτάσεις Ανάλυση Κόστους 1 ηµιουργία N σωρών heap - (Build-) 2 Εύρεση µικρότερης ϱίζας (root) 3 Εναλλαγή µε το τελευταίο αταξινόµητο στοιχείο

Αλγόριθµος sort Προβλήµατα Προτάσεις Ανάλυση Κόστους 1 ηµιουργία N σωρών heap - (Build-) 2 Εύρεση µικρότερης ϱίζας (root) 3 Εναλλαγή µε το τελευταίο αταξινόµητο στοιχείο 4 Κλήση heapify µόνο στο ένα δέντρο

Αλγόριθµος sort Προβλήµατα Προτάσεις Ανάλυση Κόστους 1 ηµιουργία N σωρών heap - (Build-) 2 Εύρεση µικρότερης ϱίζας (root) 3 Εναλλαγή µε το τελευταίο αταξινόµητο στοιχείο 4 Κλήση heapify µόνο στο ένα δέντρο 5 Επανάληψη της διαδικασίας από το 2ο ϐήµα µέχρι να ταξινοµηθούν όλα τα στοιχεία

Ανάλυση Κόστους sort Προβλήµατα Προτάσεις Ανάλυση Κόστους N 1 συγκρίσεις για την εύρεση της µικρότερης ϱίζας

Ανάλυση Κόστους sort Προβλήµατα Προτάσεις Ανάλυση Κόστους N 1 συγκρίσεις για την εύρεση της µικρότερης ϱίζας log(n + N) log N το ύψος κάθε heap

Ανάλυση Κόστους sort Προβλήµατα Προτάσεις Ανάλυση Κόστους N 1 συγκρίσεις για την εύρεση της µικρότερης ϱίζας log(n + N) log N το ύψος κάθε heap Κλήση heapify µόνο στο ένα δέντρο

Ανάλυση Κόστους sort Προβλήµατα Προτάσεις Ανάλυση Κόστους N 1 συγκρίσεις για την εύρεση της µικρότερης ϱίζας log(n + N) log N το ύψος κάθε heap Κλήση heapify µόνο στο ένα δέντρο Κέρδος περίπου 10% σε οµοιόµορφη κατανοµή τυχαίων τιµών µε σχετικά µεγάλο πλήθος στοιχείων

Παράδειγµα sort Προβλήµατα Προτάσεις Ανάλυση Κόστους Σε µορφή δέντρου: 2 5 3 11 13 7 Σε µορφή πίνακα: 2 5 3 11 13 7

Παράδειγµα sort Προβλήµατα Προτάσεις Ανάλυση Κόστους Σε µορφή δέντρου: 3 5 7 11 13 Σε µορφή πίνακα: 3 5 7 11 13 2

Παράδειγµα sort Προβλήµατα Προτάσεις Ανάλυση Κόστους Σε µορφή δέντρου: 7 5 13 11 Σε µορφή πίνακα: 7 5 13 11 3 2

Παράδειγµα sort Προβλήµατα Προτάσεις Ανάλυση Κόστους Σε µορφή δέντρου: 7 5 13 11 Σε µορφή πίνακα: 7 5 13 11 3 2

Παράδειγµα sort Προβλήµατα Προτάσεις Ανάλυση Κόστους Σε µορφή δέντρου: 7 11 13 Σε µορφή πίνακα: 7 11 13 5 3 2

Κόστος sort Προβλήµατα Προτάσεις Ανάλυση Κόστους Συνεχίζοντας, ϑα πάρουµε το τελικό αποτέλεσµα µε 9 συγκρίσεις και 6 εναλλαγές στοιχείων

Κόστος sort Προβλήµατα Προτάσεις Ανάλυση Κόστους Συνεχίζοντας, ϑα πάρουµε το τελικό αποτέλεσµα µε 9 συγκρίσεις και 6 εναλλαγές στοιχείων σύγκριση εναλλαγή 2 < 5 2 7 3 < 11, 7 > 3 3 7 3 < 5 4 13 7 < 11, 13 > 7 7 13 5 < 7 5 11 7 < 11 7 13 11 < 13

sort Κόστος Κλασικού Αλγορίθµου Προβλήµατα Προτάσεις Ανάλυση Κόστους Χρησιµοποιώντας τον κλασικό αλγόριθµο, χρειαζόµαστε 8 συγκρίσεις και 8 εναλλαγές

sort Κόστος Κλασικού Αλγορίθµου Προβλήµατα Προτάσεις Ανάλυση Κόστους Χρησιµοποιώντας τον κλασικό αλγόριθµο, χρειαζόµαστε 8 συγκρίσεις και 8 εναλλαγές σύγκριση εναλλαγή 2 11 3 < 5, 11 > 3 3 11 7 3 5 < 11, 5 < 7 7 5 7 < 13 5 13 7 < 11, 7 < 13 7 13 7 11 11 < 13 11 13

sort Εισάγαµε µια νέα ιδέα

sort Εισάγαµε µια νέα ιδέα Επιτύχαµε επιτάχυνση στην εξαγωγή του τελικού αποτελέσµατος

sort Εισάγαµε µια νέα ιδέα Επιτύχαµε επιτάχυνση στην εξαγωγή του τελικού αποτελέσµατος Εισάγονται δυνατότητες παραλληλοποίησης

sort Εισάγαµε µια νέα ιδέα Επιτύχαµε επιτάχυνση στην εξαγωγή του τελικού αποτελέσµατος Εισάγονται δυνατότητες παραλληλοποίησης Μπορεί να χρησιµοποιηθεί και σε παραλλαγές του heapsort

Ευχαριστώ sort Ε Υ Χ Α Ρ Ι Σ Τ Ω