Συνδετικότητα γραφήματος (graph connectivity)

Σχετικά έγγραφα
ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων. Λουκάς Γεωργιάδης

Κοντινότεροι Κοινοί Πρόγονοι

Κεφάλαιο 11 Ένωση Ξένων Συνόλων

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

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

Ανάλυση αλγορίθμων. Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση. - απαιτεί γνώση της κατανομής εισόδου

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αλγόριθµοι Ένωσης-Εύρεσης (Union-Find) Κεφάλαιο 1. Ε. Μαρκάκης Επικ. Καθηγητής

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

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

Προσεγγιστικοί Αλγόριθμοι

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

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

1 (6) 9 (6) 2 (3) 10 (9) 3 (6) 11 (6) 4 (8) 12 (6) 5 (6) 13 (8) 6 (5) 14 (6) 7 (6) 15 (11) 8 (8)

Προσεγγιστικοί Αλγόριθμοι

Αντισταθμιστική ανάλυση

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 2: Μαθηματικό Υπόβαθρο

Τομές Γραφήματος. Γράφημα (μη κατευθυνόμενο) Συνάρτηση βάρους ακμών. Τομή : Διαμέριση του συνόλου των κόμβων σε δύο μη κενά σύνολα

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

Πρόβληµα (ADT) Λεξικού. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Λεξικό, Union - Find 2

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

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

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

Ελάχιστο Γεννητικό Δένδρο. Παράδειγμα - Αλγόριθμος Prim. Γιατί δουλεύουν αυτοί οι αλγόριθμοι;

HY118-Διακριτά Μαθηματικά. Θεωρία γράφων / γραφήματα. Τι έχουμε δει μέχρι τώρα. Υπογράφημα. 24 -Γράφοι

Δυναμικός προγραμματισμός για δέντρα

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

HY118-Διακριτά Μαθηματικά. Θεωρία γράφων/ γραφήματα. Τι έχουμε δει μέχρι τώρα. Ισομορφισμός γράφων: Μία σχέση ισοδυναμίας μεταξύ γράφων.

Κατηγορίες Συμπίεσης. Συμπίεση με απώλειες δεδομένων (lossy compression) π.χ. συμπίεση εικόνας και ήχου

Γράφημα. Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα: Σύνολο κορυφών (vertex set) Σύνολο ακμών (edge set) 4 5 πλήθος κορυφών πλήθος ακμών

Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο

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

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

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες

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

u v 4 w G 2 G 1 u v w x y z 4

HY118-Διακριτά Μαθηματικά

Ελαφρύτατες διαδρομές

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

Διάλεξη 4: Απόδειξη: Για την κατεύθυνση, παρατηρούμε ότι διαγράφοντας μια κορυφή δεν μπορούμε να διαχωρίσουμε τα u και v. Αποδεικνύουμε

Αναζήτηση Κατά Πλάτος

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

HY118- ιακριτά Μαθηµατικά. Θεωρία γράφων / γραφήµατα. Τι έχουµε δει µέχρι τώρα. Υπογράφηµα Γράφοι

x (a 1 + a 2 ) mod 9, y (a 1 a 2 ) mod 9.

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

Γέφυρες σε Δίκτυα. Μας δίνεται ένα δίκτυο (κατευθυνόμενο γράφημα) αφετηριακός κόμβος. Γέφυρα του (με αφετηρία τον ) :

Δομές δεδομένων. Ενότητα 8: Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

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

f(x) = και στην συνέχεια

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to

Θεωρία Γραφημάτων και Εφαρμογές - Διακριτά Μαθηματικά ΙΙ Φεβρουάριος 2017

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Βασικές Ιδιότητες και Διάσχιση Κεφάλαιο 5 ( και ) Ε. Μαρκάκης Επίκουρος Καθηγητής

E(G) 2(k 1) = 2k 3.

Δένδρα. Μαθηματικά (συνδυαστικά) αντικείμενα. Έχουν κεντρικό ρόλο στην επιστήμη των υπολογιστών :

Επαγωγή και αναδρομή για άκυκλα συνεκτικά γραφήματα

Θέματα Μεταγλωττιστών

ΕΝΟΤΗΤΑ 9 ΕΝΩΣΗ ΞΕΝΩΝ ΣΥΝΟΛΩΝ ( ΟΜΕΣ UNION-FIND)

Αναζήτηση Κατά Πλάτος

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

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

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

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους

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

z 1 E(G) 2(k 1) = 2k 3. x z 2 H 1 H 2

Σχέσεις. Διμελής Σχέση. ΣτοΊδιοΣύνολο. Αναπαράσταση

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

Βασικές Έννοιες Δοµών Δεδοµένων

Φροντιστήριο #8 Ασκήσεις σε Γράφους 16/5/2017

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

w S n lim (n 1)! = x(x + q)(x + q + q 2 ) (x + q + q q n 1 ),

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

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

Σημειωματάριο Τετάρτης 29 Νοε. 2017

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

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

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

(a 1, b 1 ) (a 2, b 2 ) = (a 1 a 2, b 1 b 2 ).

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

Αναδρομικοί Αλγόριθμοι

ΔΕΙΓΜΑ ΠΡΙΝ ΤΙΣ ΔΙΟΡΘΩΣΕΙΣ - ΕΚΔΟΣΕΙΣ ΚΡΙΤΙΚΗ

Μετασχηματισμοί, Αναπαράσταση και Ισομορφισμός Γραφημάτων

Διάλεξη 4: Θεωρία Γραφημάτων Γραφέας: Σ. Κ. Διδάσκων: Σταύρος Κολλιόπουλος συνεκτικά γραφήματα (συνέχεια) Πρόταση 4.1 Δύο μπλοκ ενός

Γ7.5 Αλγόριθμοι Αναζήτησης. Γ Λυκείου Κατεύθυνσης

Σημειωματάριο Δευτέρας 4 Δεκ. 2017

Παράδειγμα 8. Να βρείτε την τιμή της παράστασης:

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

Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε:

Φροντιστήριο #9 Ασκήσεις σε Γράφους 18/5/2018

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

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

ΟιβασικέςπράξειςπουορίζουντονΑΤΔ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΑΣΚΗΣΗ 4 Σωροί, Γράφοι

Αναζήτηση Κατά Πλάτος

Μη κατευθυνόµενα γραφήµατα. Στοιχεία Θεωρίας Γραφηµάτων (1) Υπογραφήµατα.

Αναζήτηση και ταξινόμηση

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 2: Γραφήματα

q(g \ S ) = q(g \ S) S + d = S.

Transcript:

Συνδετικότητα γραφήματος (graph connectivity)

Συνδετικότητα γραφήματος (graph connectivity) Υπάρχει μονοπάτι μεταξύ α και β; α Παραδείγματα: υπολογιστές ενός δικτύου ιστοσελίδες ισοδύναμες μεταβλητές ενός προγράμματος τρανζίστορ σε ηλεκτρονικό κύκλωμα β

Συνδετικότητα γραφήματος (graph connectivity) Υπάρχει μονοπάτι μεταξύ α και β; α Παραδείγματα: υπολογιστές ενός δικτύου ιστοσελίδες ισοδύναμες μεταβλητές ενός προγράμματος τρανζίστορ σε ηλεκτρονικό κύκλωμα β

Σχέση ισοδυναμίας (equivalence relation) Η συδετικότητα σε ένα γράφημα ορίζει μία σχέση ισοδυναμίας μεταξύ των κόμβων του γραφήματος Σ = Διμερής σχέση μεταξύ αντικειμένων ενός συνόλου Α; υποσύνολο του Α Α Σ είναι σχέση ισοδυναμίας (equivalence relation): Αυτοπαθής: Συμμετρική: Μεταβατική: και

Το πρόβλημα ένωσης-εύρεσης (union-find) Θέλουμε μία δομή δεδομένων που να υποστηρίζει τις παρακάτω λειτουργίες: ένωση(α,β): αντικαθιστά τα σύνολα που περιέχουν τα α και β με την ένωση τους εύρεση(α): επιστρέφει το όνομα του συνόλου που περιέχει το α

Το πρόβλημα ένωσης-εύρεσης (union-find) Θέλουμε μία δομή δεδομένων που να υποστηρίζει τις παρακάτω λειτουργίες: ένωση(α,β): αντικαθιστά τα σύνολα που περιέχουν τα α και β με την ένωση τους εύρεση(α): επιστρέφει το όνομα του συνόλου που περιέχει το α Η δομή αυτή αρκεί για να επιλύσουμε το πρόβλημα τις συνδετικότητας: α α β β Για κάθε ακμή (α,β) εκτελούμε ένωση(α,β) Το α συνδέεται με το β αν και μόνο αν εύρεση(α)=εύρεση(β)

Αλγόριθμοι ένωσης-εύρεσης Ας υποθέσουμε ότι τα αντικείμενα μας είναι ακέραιοι αριθμοί: Χρησιμοποιούμε ένα πίνακα Π διαστάσεων Αρχικοποίηση : για

Αλγόριθμοι ένωσης-εύρεσης Ας υποθέσουμε ότι τα αντικείμενα μας είναι ακέραιοι αριθμοί: Χρησιμοποιούμε ένα πίνακα Π διαστάσεων Αρχικοποίηση : για Αρχικά κάθε αντικείμενο αποτελεί ένα ξεχωριστό σύνολο 2 3 4 5 6 7 8

Αλγόριθμοι ένωσης-εύρεσης Αρχικά κάθε αντικείμενο αποτελεί ένα ξεχωριστό σύνολο 2 3 4 5 6 7 8 Ο αλγόριθμος διαβάζει ένα γράφημα από την είσοδο και πραγματοποιεί τις κατάλληλες ενώσεις. Το γράφημα δίνεται ως μια ακολουθία ακμών. 3 4 5 2 6 7 8 Π.χ. το παραπάνω γράφημα μπορεί να μας δίνεται ως η ακολουθία ακμών {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7}

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη εύρεση Επιβάλλουμε την παρακάτω συνθήκη: Οποιαδήποτε δύο αντικείμενα α και β ανήκουν στο ίδιο σύνολο αν και μόνο αν ένωση(α,β) : για κάθε κ τέτοιο ώστε θέτουμε εύρεση(α) : επιστρέφουμε την τιμή του

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη εύρεση Οποιαδήποτε δύο αντικείμενα α και β ανήκουν στο ίδιο σύνολο αν και μόνο αν ένωση(α,β) : για κάθε κ τέτοιο ώστε θέτουμε void union(int a, int b) { int k; if (Pi[a] == Pi[b]) return; for (k=; k<=n; k++) if (Pi[k]==Pi[b]) Pi[k]=Pi[a]; } εύρεση(α) : επιστρέφουμε την τιμή του void find(int a) { return Pi[a]; }

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη εύρεση ένωση(α,β) : για κάθε κ τέτοιο ώστε θέτουμε ακολουθία ακμών {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} γράφημα 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 2 3 4 5 6 7 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη εύρεση ένωση(α,β) : για κάθε κ τέτοιο ώστε θέτουμε ακολουθία ακμών {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} γράφημα 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 2 3 4 5 6 7 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη εύρεση ένωση(α,β) : για κάθε κ τέτοιο ώστε θέτουμε ακολουθία ακμών {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} γράφημα 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 2 3 4 5 6 7 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη εύρεση ένωση(α,β) : για κάθε κ τέτοιο ώστε θέτουμε ακολουθία ακμών {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} γράφημα 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 2 3 4 5 6 7 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη εύρεση ένωση(α,β) : για κάθε κ τέτοιο ώστε θέτουμε ακολουθία ακμών {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} γράφημα 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 2 3 4 5 6 7 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη εύρεση ένωση(α,β) : για κάθε κ τέτοιο ώστε θέτουμε ακολουθία ακμών {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} γράφημα 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 2 3 4 5 6 7 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη εύρεση ένωση(α,β) : για κάθε κ τέτοιο ώστε θέτουμε ακολουθία ακμών {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} γράφημα 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 2 3 4 5 6 7 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη εύρεση ένωση(α,β) : για κάθε κ τέτοιο ώστε θέτουμε ακολουθία ακμών {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} γράφημα 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 4 5 6 7 2 3 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη εύρεση ένωση(α,β) : για κάθε κ τέτοιο ώστε θέτουμε ακολουθία ακμών {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} γράφημα 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 4 5 6 7 2 3 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη εύρεση ένωση(α,β) : για κάθε κ τέτοιο ώστε θέτουμε ακολουθία ακμών {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} γράφημα 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 4 5 7 2 3 6 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη εύρεση ένωση(α,β) : για κάθε κ τέτοιο ώστε θέτουμε ακολουθία ακμών {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} γράφημα 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 4 5 7 2 3 6 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη εύρεση ένωση(α,β) : για κάθε κ τέτοιο ώστε θέτουμε ακολουθία ακμών {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} γράφημα 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 4 7 2 3 6 5 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη εύρεση ένωση(α,β) : για κάθε κ τέτοιο ώστε θέτουμε ακολουθία ακμών {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} γράφημα 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 4 7 2 3 6 5 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη εύρεση ένωση(α,β) : για κάθε κ τέτοιο ώστε θέτουμε ακολουθία ακμών {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} γράφημα 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 2 3 4 5 6 7 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη εύρεση ένωση(α,β) : για κάθε κ τέτοιο ώστε θέτουμε ακολουθία ακμών {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} γράφημα 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 2 3 4 5 6 7 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη εύρεση ένωση(α,β) : για κάθε κ τέτοιο ώστε θέτουμε ακολουθία ακμών {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} γράφημα 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 2 3 4 5 6 7 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη εύρεση Επιβάλλουμε την παρακάτω συνθήκη: Οποιαδήποτε δύο αντικείμενα α και β ανήκουν στο ίδιο σύνολο αν και μόνο αν ένωση(α,β) : για κάθε κ τέτοιο ώστε θέτουμε εύρεση(α) : επιστρέφουμε την τιμή του Ιδιότητα: Για ν αντικείμενα και μ πράξεις ένωσης, ο αλγόριθμος γρήγορης εύρεσης απαιτεί τουλάχιστον μν εντολές.

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη ένωση δείκτης σε άλλο αντικείμενο του ίδιου συνόλου εύρεση(α) : ξεκινώντας από το α ακολουθούμε τους δείκτες μέχρι να βρούμε βρούμε αντικείμενο κ τέτοιο ώστε επιστρέφουμε την τιμή κ. α και β ανήκουν στο ίδιο σύνολο αν και μόνο αν εύρεση(α) = εύρεση(β) ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) θέτουμε

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη ένωση δείκτης σε άλλο αντικείμενο του ίδιου συνόλου εύρεση(α) : ξεκινώντας από το α ακολουθούμε τους δείκτες μέχρι να βρούμε βρούμε αντικείμενο κ τέτοιο ώστε επιστρέφουμε την τιμή κ. void find(int a) { int k=a; while (k!= Pi[k]) k=pi[k]; return k; } α και β ανήκουν στο ίδιο σύνολο αν και μόνο αν εύρεση(α) = εύρεση(β) ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) θέτουμε void union(int a, int b) { int k=find(a); int l=find(b); Pi[l]=k; }

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη ένωση ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) θέτουμε ακολουθία ακμών γράφημα {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 2 3 4 5 6 7 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη ένωση ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) θέτουμε ακολουθία ακμών γράφημα {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 2 3 4 5 6 7 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη ένωση ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) θέτουμε ακολουθία ακμών γράφημα {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 2 3 4 5 6 7 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη ένωση ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) θέτουμε ακολουθία ακμών γράφημα {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 2 3 4 5 6 7 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη ένωση ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) θέτουμε ακολουθία ακμών γράφημα {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 2 3 4 5 6 7 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη ένωση ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) θέτουμε ακολουθία ακμών γράφημα {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 2 3 4 5 6 7 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη ένωση ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) θέτουμε ακολουθία ακμών γράφημα {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 2 3 4 5 6 7 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη ένωση ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) θέτουμε ακολουθία ακμών γράφημα {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 2 3 4 5 6 7 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη ένωση ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) θέτουμε ακολουθία ακμών γράφημα {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 2 3 4 5 6 7 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη ένωση ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) θέτουμε ακολουθία ακμών γράφημα {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 4 5 7 2 3 6 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη ένωση ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) θέτουμε ακολουθία ακμών γράφημα {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 4 5 7 2 3 6 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη ένωση ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) θέτουμε ακολουθία ακμών γράφημα {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 4 7 2 3 6 5 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη ένωση ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) θέτουμε ακολουθία ακμών γράφημα {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 4 7 2 3 6 5 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη ένωση ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) θέτουμε ακολουθία ακμών γράφημα {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 2 3 4 6 5 7 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη ένωση ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) θέτουμε ακολουθία ακμών γράφημα {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 2 3 4 6 5 7 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη ένωση ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) θέτουμε ακολουθία ακμών γράφημα {,2} {2,3} {,3} {7,8} {4,6} {4,5} {6,7} {3,6} {5,7} {4,7} 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 2 3 4 6 5 7 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη ένωση εύρεση(α) : ξεκινώντας από το α ακολουθούμε τους δείκτες μέχρι να βρούμε βρούμε αντικείμενο κ τέτοιο ώστε επιστρέφουμε την τιμή κ. ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) θέτουμε Ιδιότητα: Για ν αντικείμενα και μ ν πράξεις ένωσης, ο αλγόριθμος γρήγορης ένωσης μπορεί να χρειαστεί περισσότερες από μν/2 εντολές.

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη ένωση εύρεση(α) : ξεκινώντας από το α ακολουθούμε τους δείκτες μέχρι να βρούμε βρούμε αντικείμενο κ τέτοιο ώστε επιστρέφουμε την τιμή κ. ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) θέτουμε Ιδιότητα: Για ν αντικείμενα και μ ν πράξεις ένωσης, ο αλγόριθμος γρήγορης ένωσης μπορεί να χρειαστεί περισσότερες από μν/2 εντολές. Απόδειξη: Η ακολουθία ένωση(v-,ν), 7 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη ένωση εύρεση(α) : ξεκινώντας από το α ακολουθούμε τους δείκτες μέχρι να βρούμε βρούμε αντικείμενο κ τέτοιο ώστε επιστρέφουμε την τιμή κ. ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) θέτουμε Ιδιότητα: Για ν αντικείμενα και μ ν πράξεις ένωσης, ο αλγόριθμος γρήγορης ένωσης μπορεί να χρειαστεί περισσότερες από μν/2 εντολές. Απόδειξη: Η ακολουθία ένωση(v-,ν), ένωση(v-2,ν), 6 7 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη ένωση εύρεση(α) : ξεκινώντας από το α ακολουθούμε τους δείκτες μέχρι να βρούμε βρούμε αντικείμενο κ τέτοιο ώστε επιστρέφουμε την τιμή κ. ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) θέτουμε Ιδιότητα: Για ν αντικείμενα και μ ν πράξεις ένωσης, ο αλγόριθμος γρήγορης ένωσης μπορεί να χρειαστεί περισσότερες από μν/2 εντολές. Απόδειξη: Η ακολουθία ένωση(v-,ν), ένωση(v-2,ν), ένωση(v-3,ν) 5 6 7 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη ένωση εύρεση(α) : ξεκινώντας από το α ακολουθούμε τους δείκτες μέχρι να βρούμε βρούμε αντικείμενο κ τέτοιο ώστε επιστρέφουμε την τιμή κ. ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) θέτουμε Ιδιότητα: Για ν αντικείμενα και μ ν πράξεις ένωσης, ο αλγόριθμος γρήγορης ένωσης μπορεί να χρειαστεί περισσότερες από μν/2 εντολές. Απόδειξη: Η ακολουθία ένωση(v-,ν), ένωση(v-2,ν), ένωση(v-3,ν),, ένωση(,ν) 5 6 7 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη ένωση εύρεση(α) : ξεκινώντας από το α ακολουθούμε τους δείκτες μέχρι να βρούμε βρούμε αντικείμενο κ τέτοιο ώστε επιστρέφουμε την τιμή κ. ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) θέτουμε Ιδιότητα: Για ν αντικείμενα και μ ν πράξεις ένωσης, ο αλγόριθμος γρήγορης ένωσης μπορεί να χρειαστεί περισσότερες από μν/2 εντολές. Απόδειξη: Η ακολουθία ένωση(v-,ν), ένωση(v-2,ν), ένωση(v-3,ν),, ένωση(,ν) διατρέχει δείκτες (από το v προς τη ρίζα). 5 6 7 8

Αλγόριθμοι ένωσης-εύρεσης: γρήγορη ένωση εύρεση(α) : ξεκινώντας από το α ακολουθούμε τους δείκτες μέχρι να βρούμε βρούμε αντικείμενο κ τέτοιο ώστε επιστρέφουμε την τιμή κ. ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) θέτουμε Ιδιότητα: Για ν αντικείμενα και μ ν πράξεις ένωσης, ο αλγόριθμος γρήγορης ένωσης μπορεί να χρειαστεί περισσότερες από μν/2 εντολές. Απόδειξη: Η ακολουθία ένωση(v-,ν), ένωση(v-2,ν), ένωση(v-3,ν),, ένωση(,ν) διατρέχει δείκτες (από το v προς τη ρίζα). 5 6 7 8 Για μ ακόμα πράξεις του τύπου ένωση(ν,κ), έχουμε να διατρέξουμε Συνολικά έχουμε δείκτες τουλάχιστον.

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

η βελτίωση: σταθμισμένη γρήγορη ένωση ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) Αν μέγεθος(κ) μέγεθος(λ), θέτουμε Διαφορετικά, θέτουμε γράφημα 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 2 3 4 6 5 7 8

η βελτίωση: σταθμισμένη γρήγορη ένωση ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) Αν μέγεθος(κ) μέγεθος(λ), θέτουμε Διαφορετικά, θέτουμε γράφημα 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 2 3 4 6 5 7 μέγεθος()=3 μέγεθος(4)=5 8

η βελτίωση: σταθμισμένη γρήγορη ένωση ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) Αν μέγεθος(κ) μέγεθος(λ), θέτουμε Διαφορετικά, θέτουμε γράφημα 3 4 5 2 6 7 8 πίνακας δέντρο ένωσης-εύρεσης 4 2 3 6 5 7 8

η βελτίωση: σταθμισμένη γρήγορη ένωση ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) Αν μέγεθος(κ) μέγεθος(λ), θέτουμε Διαφορετικά, θέτουμε Ας θεωρήσουμε την ακολουθία ένωση(,2), ένωση(3,4), ένωση(5,6), ένωση(7,8) 3 5 7 2 4 6 8

η βελτίωση: σταθμισμένη γρήγορη ένωση ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) Αν μέγεθος(κ) μέγεθος(λ), θέτουμε Διαφορετικά, θέτουμε Ας θεωρήσουμε την ακολουθία ένωση(,2), ένωση(3,4), ένωση(5,6), ένωση(7,8) ένωση(,3), ένωση(5,7) 2 3 4 5 6 7 8

η βελτίωση: σταθμισμένη γρήγορη ένωση ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) Αν μέγεθος(κ) μέγεθος(λ), θέτουμε Διαφορετικά, θέτουμε Ας θεωρήσουμε την ακολουθία ένωση(,2), ένωση(3,4), ένωση(5,6), ένωση(7,8) ένωση(,3), ένωση(5,7) ένωση(,5) 2 3 4 5 6 7 8

η βελτίωση: σταθμισμένη γρήγορη ένωση ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) Αν μέγεθος(κ) μέγεθος(λ), θέτουμε Διαφορετικά, θέτουμε Ομοίως, για ένωση(9,0), ένωση(,2), ένωση(3,4), ένωση(5,6) ένωση(9,), ένωση(3,5) ένωση(9,3) 9 2 3 5 0 3 4 6 7 2 4 5 8 6

η βελτίωση: σταθμισμένη γρήγορη ένωση ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) Αν μέγεθος(κ) μέγεθος(λ), θέτουμε Διαφορετικά, θέτουμε ένωση(,9) 2 3 5 9 4 6 7 0 3 8 2 4 5 6

η βελτίωση: σταθμισμένη γρήγορη ένωση ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) Αν μέγεθος(κ) μέγεθος(λ), θέτουμε Διαφορετικά, θέτουμε 2 3 4 5 6 7 8 9 ο μέγιστος αριθμός των δεικτών μέχρι τη ρίζα είναι 0 2 3 4 5 6

η βελτίωση: σταθμισμένη γρήγορη ένωση ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) Αν μέγεθος(κ) μέγεθος(λ), θέτουμε Διαφορετικά, θέτουμε Ιδιότητα: Για ν αντικείμενα, ο αλγόριθμος σταθμισμένης γρήγορης ένωσης δημιουργεί δέντρα με ύψος το πολύ

η βελτίωση: σταθμισμένη γρήγορη ένωση ένωση(α,β) : εκτελούμε κ εύρεση(α) και λ εύρεση(β) Αν μέγεθος(κ) μέγεθος(λ), θέτουμε Διαφορετικά, θέτουμε Ιδιότητα: Για ν αντικείμενα, ο αλγόριθμος σταθμισμένης γρήγορης ένωσης δημιουργεί δέντρα με ύψος το πολύ Απόδειξη: Με επαγωγή. Για v=2 είναι προφανές ότι ισχύει. Έστω ότι μια πράξη ένωσης συνδυάζει σύνολα Α και Β με μέγεθος A B Ο αριθμός των δεικτών έως τη ρίζα του δέντρου για τα στοιχεία του A είναι

2 η βελτίωση: συμπίεση διαδρομής εύρεση(α) : ξεκινώντας από το α ακολουθούμε τους δείκτες μέχρι να βρούμε βρούμε τη ρίζα κ του δέντρου. Για κάθε αντικείμενο χ που συναντούμε, θέτουμε Τέλος επιστρέφουμε την τιμή κ.

2 η βελτίωση: συμπίεση διαδρομής εύρεση(α) : ξεκινώντας από το α ακολουθούμε τους δείκτες μέχρι να βρούμε βρούμε τη ρίζα κ του δέντρου. Για κάθε αντικείμενο χ που συναντούμε, θέτουμε Τέλος επιστρέφουμε την τιμή κ. 2 3 5 9 εύρεση(6) 2 3 5 9 3 5 6 4 6 7 0 3 4 6 7 0 4 8 2 4 5 8 2 6 Ο χρόνος εκτέλεσης για οποιαδήποτε ακολουθία μ ν πράξεων εύρεσηςένωσης με ν αντικείμενα είναι σχεδόν γραμμική συνάρτηση των μ, v.

2 η βελτίωση: συμπίεση διαδρομής εύρεση(α) : ξεκινώντας από το α ακολουθούμε τους δείκτες μέχρι να βρούμε βρούμε τη ρίζα κ του δέντρου. Για κάθε αντικείμενο χ που συναντούμε, θέτουμε Τέλος επιστρέφουμε την τιμή κ. 2 3 5 9 εύρεση(6) 2 3 5 9 3 5 6 4 6 7 0 3 4 6 7 0 4 8 2 4 5 8 2 6 Ο χρόνος εκτέλεσης για οποιαδήποτε ακολουθία μ ν πράξεων εύρεσηςένωσης με ν αντικείμενα είναι σχεδόν γραμμική συνάρτηση των μ, v. Χρόνος εκτέλεσης :, όπου η αντίστροφη συνάρτηση Ackerman

Συνάρτηση Ackerman Η συνάρτηση Ackerman ορίζεται ως εξής Η συνάρτηση είναι αντίστροφη της αυξάνει με πάρα πολύ αργό ρυθμό! Π.χ. για

2 η βελτίωση: συμπίεση διαδρομής εύρεση(α) : ξεκινώντας από το α ακολουθούμε τους δείκτες μέχρι να βρούμε βρούμε τη ρίζα κ του δέντρου. Για κάθε αντικείμενο χ που συναντούμε, θέτουμε Τέλος επιστρέφουμε την τιμή κ. Ο χρόνος εκτέλεσης για οποιαδήποτε ακολουθία μ ν πράξεων εύρεσηςένωσης με ν αντικείμενα είναι σχεδόν γραμμική συνάρτηση των μ, v. Χρόνος εκτέλεσης :, όπου η αντίστροφη συνάρτηση Ackerman Μια εντολή εύρεσης ή ένωση μπορεί να πάρει στη χειρότερη περίπτωση, ωστόσο χρόνο ακόμα και στη χειρότερη δυνατή ακολουθία μια λειτουργία εύρεσης ή ένωσης παίρνει χρόνο κατά μέσο όρο

2 η βελτίωση: συμπίεση διαδρομής εύρεση(α) : ξεκινώντας από το α ακολουθούμε τους δείκτες μέχρι να βρούμε βρούμε τη ρίζα κ του δέντρου. Για κάθε αντικείμενο χ που συναντούμε, θέτουμε Τέλος επιστρέφουμε την τιμή κ. Ο χρόνος εκτέλεσης για οποιαδήποτε ακολουθία μ ν πράξεων εύρεσηςένωσης με ν αντικείμενα είναι σχεδόν γραμμική συνάρτηση των μ, v. Χρόνος εκτέλεσης :, όπου η αντίστροφη συνάρτηση Ackerman Μια εντολή εύρεσης ή ένωση μπορεί να πάρει στη χειρότερη περίπτωση, ωστόσο χρόνο ακόμα και στη χειρότερη δυνατή ακολουθία μια λειτουργία εύρεσης ή ένωσης παίρνει χρόνο κατά μέσο όρο Αντισταθμιστική Ανάλυση