Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Ενότητα 2.1 Αλγόριθμοι Ταξινόμησης O(n 2 ) & O(nlogn) Σχεδίαση & Ανάλυση Αλγορίθμων.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Ενότητα 2.1 Αλγόριθμοι Ταξινόμησης O(n 2 ) & O(nlogn) Σχεδίαση & Ανάλυση Αλγορίθμων."— Μεταγράφημα παρουσίασης:

1 Ενότητα 2.1 Αλγόριθμοι Ταξινόμησης O(n 2 ) & O(nlogn) Σχεδίαση & Ανάλυση Αλγορίθμων

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

3 Αλγόριθμος Φυσαλίδας (Bubble-Sort) Το Min πάντα στη θέση i  Αλγόριθμος Bubble-Sort

4

5 Αλγόριθμος Selection -Sort Αλγόριθμος Επιλογής (Selection-Sort) Το Min πάντα στη θέση i

6 Αλγόριθμος Selection -Sort

7 Αλγόριθμος Insertion -Sort Αλγόριθμος Παρεμβολής (Insertion-Sort)

8 Αλγόριθμος Insertion -Sort

9

10

11

12 Πρόβλημα Π Άνω Φράγμα του Π Κάτω Φράγμα του Π Βέλτιστος Αλγόριθμος Αλγόριθμος Θεώρημα Άνω και Κάτω φράγματα

13 Ο(n 2 ) Αλγόριθμος Bubble-Sort Ο(n 2 ) Αλγόριθμος Selection-Sort Ο(n 2 ) Αλγόριθμος Insertion-Sort Άνω Φράγμα Κάτω Φράγμα Άνω και Κάτω φράγματα Πρόβλημα Π Υπάρχει Ταχύτερος Αλγόριθμος !!!

14 Κάτω φράγματα – Πρόβλημα Ταξινόμηση Bubble-Sort Selection-Sort Insertion-Sort Κλάση Αλγορίθμων:

15 Κάτω φράγματα – Πρόβλημα Ταξινόμηση Bubble-Sort, Selection-Sort, Insertion-Sort

16 Κάτω φράγματα – Πρόβλημα Ταξινόμηση

17

18

19

20 Αλγόριθμοι Bubble-Sort Selection –Sort Insertion -Sort Quick -Sort Merge–Sort Heap–Sort Counting–Sort Bucket-Sort Radix-Sort Shell-sort

21 Διαίρει και Βασίλευε (Divide and Conquer ) Αλγόριθμοι:Quick-Sort & Merge-Sort Τεχνική: Divide and Conquer 1 2 3

22 Διαίρει και Βασίλευε (Divide and Conquer ) Σχεδιασμός Αλγόριθμου: Divide and Conquer >   

23 Διαίρει και Βασίλευε (Divide and Conquer )

24 Divide and Conquer (σχηματικά…) πρόβλημα μεγέθους Ν διάσπαση πρόβλημα μεγέθους Ν-k πρόβλημα μεγέθους k

25 Διαίρει και Βασίλευε (Divide and Conquer ) πρόβλημα μεγέθους Ν διάσπαση πρόβλημα μεγέθους Ν-k πρόβλημα μεγέθους k επιλύουμε αναδρομικά τα υποπροβλήματα Divide and Conquer (σχηματικά…)

26 Διαίρει και Βασίλευε (Divide and Conquer ) πρόβλημα μεγέθους Ν διάσπαση πρόβλημα μεγέθους Ν-k πρόβλημα μεγέθους k επιλύουμε αναδρομικά τα υποπροβλήματα Divide and Conquer (σχηματικά…)

27 Διαίρει και Βασίλευε (Divide and Conquer ) πρόβλημα μεγέθους Ν διάσπαση πρόβλημα μεγέθους Ν-k πρόβλημα μεγέθους k επιλύουμε αναδρομικά τα υποπροβλήματα Divide and Conquer (σχηματικά…)

28 Διαίρει και Βασίλευε (Divide and Conquer ) πρόβλημα μεγέθους Ν διάσπαση πρόβλημα μεγέθους Ν-k πρόβλημα μεγέθους k επιλύουμε αναδρομικά τα υποπροβλήματα Divide and Conquer (σχηματικά…)

29 Διαίρει και Βασίλευε (Divide and Conquer ) πρόβλημα μεγέθους Ν διάσπαση πρόβλημα μεγέθους Ν-k πρόβλημα μεγέθους k επιλύουμε αναδρομικά τα υποπροβλήματα Divide and Conquer (σχηματικά…)

30 Διαίρει και Βασίλευε (Divide and Conquer ) διάσπαση προβλήματος & σύνθεση λύσεων Χρόνος εκτέλεσης : χρόνος διάσπασης χρόνος σύνθεσης επιλύουμε αναδρομικά τα υποπροβλήματα πρόβλημα μεγέθους Ν πρόβλημα μεγέθους Ν-k πρόβλημα μεγέθους k Divide and Conquer (σχηματικά…)

31 Διαίρει και Βασίλευε (Divide and Conquer )

32

33 Αλγόριθμος Quick -Sort

34

35

36

37 k = n-1, n-2, …, 2. Quick-Sort (1, 0) Quick-Sort (2, n) n-1 1 2 3 n

38 Αλγόριθμος Quick -Sort

39

40 Ισομερής Προσέγγιση

41 Αλγόριθμος Quick -Sort

42 Γενική Προσέγγιση

43 Αλγόριθμος Quick -Sort

44

45

46

47

48

49 Αλγόριθμος Merge -Sort

50

51

52 Συγχώνευση (Merge) Συγχώνευση δύο διατεταγμένων ακολουθιών 2671520327588411121529435091

53 Αλγόριθμος Merge -Sort Συγχώνευση (Merge) 2671520327588411121529435091 ij Συγχώνευση δύο διατεταγμένων ακολουθιών

54 Αλγόριθμος Merge -Sort Συγχώνευση (Merge) 671520327588411121529435091 ij 2 2 Συγχώνευση δύο διατεταγμένων ακολουθιών

55 Αλγόριθμος Merge -Sort Συγχώνευση (Merge) 671520327588411121529435091 ij 24 2 Συγχώνευση δύο διατεταγμένων ακολουθιών

56 Αλγόριθμος Merge -Sort Συγχώνευση (Merge) 671520327588411121529435091 ij 264 2 Συγχώνευση δύο διατεταγμένων ακολουθιών

57 Αλγόριθμος Merge -Sort Συγχώνευση (Merge) 671520327588411121529435091 ij 2674 2 Συγχώνευση δύο διατεταγμένων ακολουθιών

58 Αλγόριθμος Merge -Sort Συγχώνευση (Merge) 671520327588411121529435091 ij 267411 2 Συγχώνευση δύο διατεταγμένων ακολουθιών

59 Αλγόριθμος Merge -Sort Συγχώνευση (Merge) 671520327588411121529435091 ij 26741112 2 Συγχώνευση δύο διατεταγμένων ακολουθιών

60 Αλγόριθμος Merge -Sort Συγχώνευση (Merge) 671520327588411121529435091 ij 2674111215 2 … … Συγχώνευση δύο διατεταγμένων ακολουθιών

61 Αλγόριθμος Merge -Sort Συγχώνευση (Merge) 671520327588411121529435091 ij 2 2674111215 2020292932435075 Συγχώνευση δύο διατεταγμένων ακολουθιών

62 Αλγόριθμος Merge -Sort Συγχώνευση (Merge) 671520327588411121529435091 ij 2 2674111215 202029293243507588 Συγχώνευση δύο διατεταγμένων ακολουθιών

63 Αλγόριθμος Merge -Sort Συγχώνευση (Merge) 671520327588411121529435091 ij 2 2674111215 20202929324350758891 Απαιτεί 3 ξεχωριστούς πίνακες Συγχώνευση δύο διατεταγμένων ακολουθιών

64 Αλγόριθμος Merge -Sort Συγχώνευση (Merge) 6715203275884111215294350912 lmm+1r a lm r aux Συγχώνευση δύο διατεταγμένων ακολουθιών με 2 πίνακες

65 Αλγόριθμος Merge -Sort Συγχώνευση (Merge) 6715203275884111215294350912 lmm+1r a 6715203275882 lmm+1r aux Συγχώνευση δύο διατεταγμένων ακολουθιών με 2 πίνακες

66 Αλγόριθμος Merge -Sort Συγχώνευση (Merge) 6715203275884111215294350912 lmm+1r a 671520327588919150432915121142 lmm+1r aux αντιστροφή της 2 ης ακολουθίας Συγχώνευση δύο διατεταγμένων ακολουθιών με 2 πίνακες

67 Αλγόριθμος Merge -Sort Συγχώνευση (Merge) 6715203275884111215294350912 lmm+1r a 671520327588919150432915121142 lmm+1r aux Συγχώνευση δύο διατεταγμένων ακολουθιών με 2 πίνακες

68 Αλγόριθμος Merge -Sort Συγχώνευση (Merge) 6715203275884111215294350912 lmm+1r a 671520327588919150432915121142 lmm+1r aux Συγχώνευση δύο διατεταγμένων ακολουθιών με 2 πίνακες

69 Αλγόριθμος Merge -Sort Συγχώνευση (Merge) 4715203275884111215294350912 lmm+1r a 671520327588919150432915121142 lmm+1r aux Συγχώνευση δύο διατεταγμένων ακολουθιών με 2 πίνακες

70 Αλγόριθμος Merge -Sort Συγχώνευση (Merge) 4615203275884111215294350912 lmm+1r a 671520327588919150432915121142 lmm+1r aux … … … Συγχώνευση δύο διατεταγμένων ακολουθιών με 2 πίνακες

71 Αλγόριθμος Merge -Sort Συγχώνευση (Merge) 467111215 20293243504350912 lmm+1r a 671520327588919150432915121142 lmm+1r aux Συγχώνευση δύο διατεταγμένων ακολουθιών με 2 πίνακες

72 Αλγόριθμος Merge -Sort Συγχώνευση (Merge) 467111215 20293243507550912 lmm+1r a 671520327588919150432915121142 lmm+1r aux Συγχώνευση δύο διατεταγμένων ακολουθιών με 2 πίνακες

73 Αλγόριθμος Merge -Sort Συγχώνευση (Merge) 467111215 20293243507588912 lmm+1r a 671520327588919150432915121142 lmm+1r aux Συγχώνευση δύο διατεταγμένων ακολουθιών με 2 πίνακες

74 Αλγόριθμος Merge -Sort Σύγκριση δύο στοιχείων

75 Αλγόριθμος Merge -Sort

76

77

78

79 Σύγκριση δύο στοιχείων O(n logn)

80 Κάτω Φράγματα

81 a[i]<a[j] ? a[b]<a[c] ? a[f]<a[g] ? a[h]<a[i] ? a[d]<a[e] ? a[j]<a[k] ? a[l]<a[m] ? Δένδρο απόφασης Κάτω φράγμα για ταξινόμηση που χρησιμοποιεί μόνο συγκρίσεις

82 Κάτω Φράγματα Δένδρο απόφασης Π.χ. για n=3 a[1]<a[2] ? a[1]<a[3] ? a[2]<a[3] ? a[1]<a[3] ? a[2]<a[3] ? a[1]< a[2]< a[3] a[1]< a[3]< a[2] a[3]< a[1]< a[2] a[2]< a[1]< a[3] a[2]< a[3]< a[1] a[3]< a[2]< a[1] Κάτω φράγμα για ταξινόμηση που χρησιμοποιεί μόνο συγκρίσεις

83 Κάτω Φράγματα Δένδρο απόφασης Π.χ. για n=3 a[1]<a[2] ? a[1]<a[3] ? a[2]<a[3] ? a[1]<a[3] ? a[2]<a[3] ? a[1]< a[2]< a[3] a[1]< a[3]< a[2] a[3]< a[1]< a[2] a[2]< a[1]< a[3] a[2]< a[3]< a[1] a[3]< a[2]< a[1] Για a=[1,2,3] Η εκτέλεση του αλγόριθμου ακολουθεί ένα μονοπάτι από τη ρίζα προς κάποιο φύλλο Κάτω φράγμα για ταξινόμηση που χρησιμοποιεί μόνο συγκρίσεις

84 Κάτω Φράγματα Δένδρο απόφασης Π.χ. για n=3 Για a=[2,1,3] a[1]<a[2] ? a[1]<a[3] ? a[2]<a[3] ? a[1]<a[3] ? a[2]<a[3] ? a[1]< a[2]< a[3] a[1]< a[3]< a[2] a[3]< a[1]< a[2] a[2]< a[1]< a[3] a[2]< a[3]< a[1] a[3]< a[2]< a[1] Η εκτέλεση του αλγόριθμου ακολουθεί ένα μονοπάτι από τη ρίζα προς κάποιο φύλλο Κάτω φράγμα για ταξινόμηση που χρησιμοποιεί μόνο συγκρίσεις

85 Κάτω Φράγματα a[i]<a[j] ? a[b]<a[c] ? a[f]<a[g] ? a[h]<a[i] ? a[d]<a[e] ? a[j]<a[k] ? a[l]<a[m] ? Δένδρο απόφασης Ο αριθμός των συγκρίσεων που πραγματοποιεί μια εκτέλεση του αλγόριθμου στη χειρότερη περίπτωση είναι ίσος με το ύψος του δένδρου Κάθε μετάθεση της ακολουθίας εισόδου αντιστοιχεί σε διαφορετικό φύλλο  υπάρχουν n! φύλλα Ύψος δυαδικού δένδρου με n! φύλλα = Κάτω φράγμα για ταξινόμηση που χρησιμοποιεί μόνο συγκρίσεις

86 Κάτω Φράγματα

87

88 Σύγκριση δύο στοιχείων O(n logn)

89 Κάτω Φράγματα ??? Ενότητα Αλγόριθμοι Ταξινόμησης O(n 2 ) & O(nlogn)


Κατέβασμα ppt "Ενότητα 2.1 Αλγόριθμοι Ταξινόμησης O(n 2 ) & O(nlogn) Σχεδίαση & Ανάλυση Αλγορίθμων."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google