Δυναμικοί πίνακες - University of...

47
Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη κε ρξήζε πηλάθσλ π.ρ. Σηνίβεο α β γ δ θάησ όξην άλσ όξην ηξέρνπζα θνξπθή Οπξέο 1 0 2 3 4 5 Ν-1 tail head % N

Transcript of Δυναμικοί πίνακες - University of...

Page 1: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη κε ρξήζε πηλάθσλ

π.ρ. Σηνίβεο

α β γ δ

θάησ

όξην

άλσ

όξην

ηξέρνπζα

θνξπθή

Οπξέο

1

0

2

3 4

5

Ν-1

tail

head % N

Page 2: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη κε ρξήζε πηλάθσλ

π.ρ. Οπξέο Πξνηεξαηόηεηαο

20

18 12

11

2

5

4 13

15

7

9

6

Αλαπαξάζηαζε σο πιήξεο δπαδηθό δέλδξν: θάζε θόκβνο έρεη θιεηδί κηθξόηεξν

ή ίζν κε ην θιεηδί ηνπ γνλέα ηνπ.

[1]

[2] [3]

[7] [6]

[12] [11] [10] [9] [8]

[4] [5]

20 18 12 11 15 9 5 4 2 7 13 6

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]

Υινπνίεζε κε πίλαθα: ην ζηνηρείν ζηε

ζέζε i είλαη ν γνλέαο ησλ ζηνηρείσλ

ζηηο ζέζεηο 2i θαη 2i+1.

ε ξίδα έρεη ην κέγηζην θιεηδί.

ύςνο lgN

Page 3: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη κε ρξήζε πηλάθσλ

k2

T

0

m-1

k1

k3

U

K

π.ρ. Πίλαθεο Γηαζπνξάο (Πίλαθεο Καηαθεξκαηηζκνύ)

Page 4: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη κε ρξήζε πηλάθσλ

Πίλαθεο ζηε C

void initialize(int *a, int N)

{

*a = malloc(N*sizeof(int));

for (i=0; i<N; i++) a[i]=0;

}

void main()

{

int *a;

initialize(a,Ν);

}

Γπλακηθή θαηαλνκή κλήκεο

Page 5: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη κε ρξήζε πηλάθσλ

Πίλαθεο ζηε C

void initialize(int *a, int N)

{

*a = malloc(N*sizeof(int));

for (i=0; i<N; i++) a[i]=0;

}

void main()

{

int *a;

initialize(a,Ν);

}

Γπλακηθή θαηαλνκή κλήκεο

Τη γίλεηαη αλ δε γλσξίδνπκε

εθ ησλ πξνηέξσλ ηε ηηκή ηνπ N;

Page 6: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

k2

T

7

k1

k3

0 k4

k5

k6

k7

Page 7: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

k2

T

7

k1

k3

0 k4

k5

k6

k7

k8

ν πίλαθαο είλαη γεκάηνο

Page 8: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

k2

T

7

k1

k3

0 k4

k5

k6

k7

k8 k9

ν πίλαθαο είλαη γεκάηνο

Page 9: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

k2

T

7

k1

k3

0 k4

k5

k6

k7

k8 k9

ν πίλαθαο είλαη γεκάηνο

Λύζε : Γεκηνπξγνύκε έλα κεγαιύηεξν πίλαθα Τ΄ θαη αληηγξάθνπκε ηα

ζηνηρεία ηνπ Τ.

Τη κέγεζνο πξέπεη λα έρεη ν T’;

Page 10: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Ακραία λύζη 1:

T

7

0

T’

7

0

8

λέν

ζηνηρείν

Page 11: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Ακραία λύζη 1:

T

7

0

T’

7

0

8

αμηνπνηνύκε όιν

ην ρώξν ηνπ Τ’

θάζε λέα εηζαγσγή

παίξλεη Ο(n) ρξόλν

λέν

ζηνηρείν

Page 12: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Ακραία λύζη 2:

T

7

0

T’

7

0

8

εηζαγσγή λένπ ζηνηρείνπ

ζε Ο(1) ρξόλν

αμηνπνηνύκε ειάρηζην

από ην ρώξν ηνπ Τ’

λέν

ζηνηρείν

Page 13: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Ενδιάμεζη λύζη :

T

7

0

T’

7

0

εηζαγσγή λένπ ζηνηρείνπ

ζε ανηιζηαθμιζηικό

Ο(1) ρξόλν

αμηνπνηνύκε πάλσ

από ην κηζό ρώξν

ηνπ Τ’

λέν

ζηνηρείν

15

8

Page 14: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Ενδιάμεζη λύζη :

Ανάλυζη με ηην αθροιζηική μέθοδο

Τν θόζηνο ηεο i-νζηήο εηζαγσγήο είλαη: όηαλ ην i-1 είλαη δύλακε ηνπ 2

δηαθνξεηηθά

Page 15: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Ενδιάμεζη λύζη :

Ανάλυζη με ηην αθροιζηική μέθοδο

Τν θόζηνο ηεο i-νζηήο εηζαγσγήο είλαη: όηαλ ην i-1 είλαη δύλακε ηνπ 2

δηαθνξεηηθά

Δπνκέλσο γηα αθνινπζία n εηζαγσγώλ έρνπκε ζπλνιηθό θόζηνο

Page 16: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Ενδιάμεζη λύζη :

Ανάλυζη με ηην χρεωπιζηωηική μέθοδο

T

7

0

λέν

ζηνηρείν

Σε θάζε πξάμε εηζαγσγήο απνδίδνπκε 3 κνλάδεο πίζησζεο

1 1 1

Page 17: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Ενδιάμεζη λύζη :

Ανάλυζη με ηην χρεωπιζηωηική μέθοδο

T

7

0

λέν

ζηνηρείν

Σε θάζε πξάμε εηζαγσγήο απνδίδνπκε 3 κνλάδεο πίζησζεο

1 1 1

Page 18: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Ενδιάμεζη λύζη :

Ανάλυζη με ηην χρεωπιζηωηική μέθοδο

T

7

0

λέν

ζηνηρείν

Σε θάζε πξάμε εηζαγσγήο απνδίδνπκε 3 κνλάδεο πίζησζεο

1

1 1

Page 19: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Ενδιάμεζη λύζη :

Ανάλυζη με ηην χρεωπιζηωηική μέθοδο

Σε θάζε πξάμε εηζαγσγήο απνδίδνπκε 3 κνλάδεο πίζησζεο

T

7

0

T’

7

0

15

8

1 1 1 1 1 1 1 1

πξηλ ην δηπιαζηαζκό

ηνπ πίλαθα θάζε ζέζε

έρεη 1 κνλάδα πίζησζεο

Page 20: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Ενδιάμεζη λύζη :

Ανάλυζη με ηην χρεωπιζηωηική μέθοδο

Σε θάζε πξάμε εηζαγσγήο απνδίδνπκε 3 κνλάδεο πίζησζεο

T

7

0

T’

7

0

15

8

πξηλ ην δηπιαζηαζκό

ηνπ πίλαθα θάζε ζέζε

έρεη 1 κνλάδα πίζησζεο

1 1

1

1 1

1 1

1 απνπιεξώλεη ηε

κεηαθίλεζε ηνπ

ζηνηρείνπ

ζηνλ Τ’ δελ ππάξρεη

θακία πίζησζε

Page 21: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Ενδιάμεζη λύζη :

Ανάλυζη με ηην χρεωπιζηωηική μέθοδο

Σε θάζε πξάμε εηζαγσγήο απνδίδνπκε 3 κνλάδεο πίζησζεο

T

7

0

T’

7

0

λέν

ζηνηρείν

15

8

1 1 1

Page 22: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Ενδιάμεζη λύζη :

Ανάλυζη με ηην χρεωπιζηωηική μέθοδο

Σε θάζε πξάμε εηζαγσγήο απνδίδνπκε 3 κνλάδεο πίζησζεο

T

7

0

T’

7

0

λέν

ζηνηρείν

15

8

1

1

1

κέρξη ηνλ επόκελν

δηπιαζηαζκό θάζε

ζέζε ηνπ Τ’ ζα έρεη

1 κνλάδα πίζησζεο

Page 23: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Ενδιάμεζη λύζη :

Ανάλυζη με ηην ενεργειακή μέθοδο

Δπηιέγνπκε

πιήζνο απνζεθεπκέλσλ ζηνηρείσλ ζηνλ Τ

κέγεζνο ηνπ Τ

όπνπ

Αξρηθά, πξηλ ηελ πξώηε εηζαγσγή

Page 24: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Ενδιάμεζη λύζη :

Ανάλυζη με ηην ενεργειακή μέθοδο

Δπηιέγνπκε

πιήζνο απνζεθεπκέλσλ ζηνηρείσλ ζηνλ Τ

κέγεζνο ηνπ Τ

όπνπ

Έζησ όηη ε i-νζηή εηζαγσγή δελ πξνθαιεί δηπιαζηαζκό ηνπ πίλαθα

ηόηε θαη

επνκέλσο έρνπκε αληηζηαζκηζηηθό θόζηνο

Page 25: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Ενδιάμεζη λύζη :

Ανάλυζη με ηην ενεργειακή μέθοδο

Δπηιέγνπκε

πιήζνο απνζεθεπκέλσλ ζηνηρείσλ ζηνλ Τ

κέγεζνο ηνπ Τ

όπνπ

Έζησ όηη ε i-νζηή εηζαγσγή πξνθαιεί δηπιαζηαζκό ηνπ πίλαθα

Τόηε θαη

επνκέλσο έρνπκε αληηζηαζκηζηηθό θόζηνο

Page 26: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Δσναμικοί πίνακες με ειζαγωγές και διαγραθές

Σπληειεζηήο πιεξόηεηαο πίλαθα Τ :

πιήζνο απνζεθεπκέλσλ ζηνηρείσλ ζηνλ Τ

κέγεζνο ηνπ Τ

όπνπ

Δπηζπκεηέο ηδηόηεηεο :

α) πεξηνξηζκέλε ζπαηάιε ρώξνπ : ζηαζεξά

β) κηθξό αληηζηαζκηζηηθό θόζηνο αλά πξάμε

Page 27: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Δσναμικοί πίνακες με ειζαγωγές και διαγραθές

Σπληειεζηήο πιεξόηεηαο πίλαθα Τ :

πιήζνο απνζεθεπκέλσλ ζηνηρείσλ ζηνλ Τ

κέγεζνο ηνπ Τ

όπνπ

Δπηζπκεηέο ηδηόηεηεο :

α) πεξηνξηζκέλε ζπαηάιε ρώξνπ : ζηαζεξά

β) κηθξό αληηζηαζκηζηηθό θόζηνο αλά πξάμε

Γηα λα πεηύρνπκε ηελ ηδηόηεηα (α) πξέπεη λα αληηγξάθνπκε

ηα ζηνηρεία ζε κηθξόηεξν πίλαθα κεηά από αξθεηέο δηαγξαθέο

Page 28: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Δσναμικοί πίνακες με ειζαγωγές και διαγραθές

Γνθηκάδνπκε λα επεθηείλνπκε ηελ πξνεγνύκελε ιύζε

7

0

7

0

15

8

εηζαγσγή κε

δηπιαζηαζκόο

δηαγξαθή κε

7

0

ππνδηπιαζηαζκόο

Page 29: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Δσναμικοί πίνακες με ειζαγωγές και διαγραθές

Γνθηκάδνπκε λα επεθηείλνπκε ηελ πξνεγνύκελε ιύζε

7

0

7

0

15

8

εηζαγσγή κε

δηπιαζηαζκόο

δηαγξαθή κε

7

0

ππνδηπιαζηαζκόο

επηηπγράλεη

Page 30: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Δσναμικοί πίνακες με ειζαγωγές και διαγραθές

Γνθηκάδνπκε λα επεθηείλνπκε ηελ πξνεγνύκελε ιύζε

7

0

7

0

15

8

εηζαγσγή κε

δηπιαζηαζκόο

δηαγξαθή κε

7

0

ππνδηπιαζηαζκόο

επηηπγράλεη Ο(n) αληηζηαζκηζηηθό

θόζηνο αλά πξάμε

Page 31: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Δσναμικοί πίνακες με ειζαγωγές και διαγραθές

7

0

7

0

15

8

εηζαγσγή

Ο(n) αληηζηαζκηζηηθό

θόζηνο αλά πξάμε

Π.ρ.

Page 32: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Δσναμικοί πίνακες με ειζαγωγές και διαγραθές

7

0

7

0

15

8

εηζαγσγή

Ο(n) αληηζηαζκηζηηθό

θόζηνο αλά πξάμε

Π.ρ.

δηαγξαθή

7

0

15

8

Page 33: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Δσναμικοί πίνακες με ειζαγωγές και διαγραθές

7

0

7

0

15

8

εηζαγσγή

Ο(n) αληηζηαζκηζηηθό

θόζηνο αλά πξάμε

Π.ρ.

δηαγξαθή

7

0

15

8

δηαγξαθή

7

0

Page 34: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Δσναμικοί πίνακες με ειζαγωγές και διαγραθές

7

0

7

0

15

8

εηζαγσγή

Ο(n) αληηζηαζκηζηηθό

θόζηνο αλά πξάμε

Π.ρ.

δηαγξαθή

7

0

15

8

δηαγξαθή

7

0

Μπνξνύκε λα

επαλαιάβνπκε

ηελ ίδηα δηαδηθαζία

πνιιέο θνξέο

εηζα γσγή

Page 35: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Δσναμικοί πίνακες με ειζαγωγές και διαγραθές

Βειηησκέλε ιύζε

7

0

7

0

15

8

εηζαγσγή κε

δηπιαζηαζκόο

δηαγξαθή κε

7

0

ππνδηπιαζηαζκόο

Page 36: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Δσναμικοί πίνακες με ειζαγωγές και διαγραθές

Βειηησκέλε ιύζε

7

0

7

0

15

8

εηζαγσγή κε

δηπιαζηαζκόο

δηαγξαθή κε

7

0

ππνδηπιαζηαζκόο

επηηπγράλεη Ο(1) αληηζηαζκηζηηθό

θόζηνο αλά πξάμε

Page 37: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Δσναμικοί πίνακες με ειζαγωγές και διαγραθές

Ανάλυζη με ηην ενεργειακή μέθοδο

Δπηιέγνπκε ,

Ιδηόηεηεο

Page 38: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Δσναμικοί πίνακες με ειζαγωγές και διαγραθές

Ανάλυζη με ηην ενεργειακή μέθοδο

Δπηιέγνπκε ,

Ιδηόηεηεο

Τν δπλακηθό αξθεί γηα λα θαιύςεη ηελ αληηγξαθή ησλ αληηθεηκέλσλ

Page 39: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Δσναμικοί πίνακες με ειζαγωγές και διαγραθές

Ανάλυζη με ηην ενεργειακή μέθοδο

Δπηιέγνπκε ,

Αξρηθά, πξηλ ηελ πξώηε εηζαγσγή

Δπνκέλσο ην ζπλνιηθό αληηζηαζκηζηηθό θόζηνο είλαη

θαη κεηά από θάζε πξάμε ηζρύεη

Page 40: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Δσναμικοί πίνακες με ειζαγωγές και διαγραθές

Ανάλυζη με ηην ενεργειακή μέθοδο

Δπηιέγνπκε ,

Πξέπεη λα δείμνπκε όηη ε i-νζηή πξάμε (εηζαγσγή ή δηαγξαθή) έρεη

αληηζηαζκηζηηθό θόζηνο

Πξέπεη λα αλαιύζνπκε δηάθνξεο πεξηπηώζεηο αλάινγα κε ην είδνο ηεο πξάμεο

θαη αλ πξνθαιείηαη δηπιαζηαζκόο ή ππνδηπιαζηαζκόο ηνπ πίλαθα

Page 41: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Δσναμικοί πίνακες με ειζαγωγές και διαγραθές

Ανάλυζη με ηην ενεργειακή μέθοδο

Δπηιέγνπκε ,

Έζησ όηη ε i-νζηή πξάμε είλαη εηζαγσγή.

Δάλ θαη έρνπκε

Page 42: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Δσναμικοί πίνακες με ειζαγωγές και διαγραθές

Ανάλυζη με ηην ενεργειακή μέθοδο

Δπηιέγνπκε ,

Έζησ όηη ε i-νζηή πξάμε είλαη εηζαγσγή.

Δάλ θαη έρνπκε

Page 43: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Δσναμικοί πίνακες με ειζαγωγές και διαγραθές

Ανάλυζη με ηην ενεργειακή μέθοδο

Δπηιέγνπκε ,

Έζησ όηη ε i-νζηή πξάμε είλαη δηαγξαθή.

Δάλ θαη δελ πξνθαιείηαη ππνδηπιαζηαζκόο έρνπκε

Page 44: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Δσναμικοί πίνακες με ειζαγωγές και διαγραθές

Ανάλυζη με ηην ενεργειακή μέθοδο

Δπηιέγνπκε ,

Έζησ όηη ε i-νζηή πξάμε είλαη δηαγξαθή.

Δάλ θαη πξνθαιείηαη ππνδηπιαζηαζκόο έρνπκε

θαη

νπόηε

Page 45: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Δσναμικοί πίνακες με ειζαγωγές και διαγραθές

Ανάλυζη με ηην ενεργειακή μέθοδο

Δπηιέγνπκε ,

Έζησ όηη ε i-νζηή πξάμε είλαη δηαγξαθή.

Δάλ θαη πξνθαιείηαη ππνδηπιαζηαζκόο έρνπκε

θαη , άξα

Page 46: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Δσναμικοί πίνακες με ειζαγωγές και διαγραθές

Ανάλυζη με ηην ενεργειακή μέθοδο

Δπηιέγνπκε ,

Με όκνην ηξόπν αλαιύνληαη θαη νη ππόινηπεο πεξηπηώζεηο.

Έηζη ιακβάλνπκε ζηαζεξό αληηζηαζκηζηηθό θόζηνο γηα θάζε πξάμε.

Page 47: Δυναμικοί πίνακες - University of Ioanninaloukas/courses/Algorithms_and_Data...Δυναμικοί πίνακες Πνιιέο δνκέο δεδνκέλσλ πινπνηνύληαη

Δυναμικοί πίνακες

Δσναμικοί πίνακες με ειζαγωγές και διαγραθές

Vector

Vectors are a kind of sequence containers. As such, their elements are ordered

following a strict linear sequence.

Vector containers are implemented as dynamic arrays; Just as regular arrays, vector

containers have their elements stored in contiguous storage locations, which means

that their elements can be accessed not only using iterators but also using offsets on

regular pointers to elements.

But unlike regular arrays, storage in vectors is handled automatically, allowing it to be

expanded and contracted as needed.

Vectors are good at:

• Accessing individual elements by their position index (constant time).

• Iterating over the elements in any order (linear time).

• Add and remove elements from its end (constant amortized time).

Δγρεηξίδην ηεο C++ ζηε δηεύζπλζε http://www.cplusplus.com/