SlideShare a Scribd company logo
1 of 52
Download to read offline
Αλγόριθµοι σε C
Μάθηµα 3:
Ταξινόµηση Πίνακα
∆ηµήτρης Ψούνης
Περιεχόµενα Μαθήµατος
Α. Θεωρία
1. Ταξινόµηση Πίνακα
1. Ορισµός του Προβλήµατος
2. Ταξινόµηση µε Εισαγωγή
1. Ιδέα του Αλγορίθµου
2. Κώδικας σε C
3. Παράδειγµα Εκτέλεσης
4. Άσκηση
3. Ταξινόµηση µε Επιλογή
1. Ιδέα του Αλγορίθµου
2. Κώδικας σε C
3. Παράδειγµα Εκτέλεσης
4. Άσκηση
4. Ταξινόµηση Φυσαλίδας
1. Ιδέα του Αλγορίθµου
2. Κώδικας σε C
3. Παράδειγµα Εκτέλεσης
4. Άσκηση
2∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
5. Ταξινόµηση µε Συγχώνευση
1. Ιδέα του Αλγορίθµου
2. Κώδικας σε C
3. Παράδειγµα Εκτέλεσης
4. Η merge
5. Άσκηση
6. Γρήγορη Ταξινόµηση
1. Ιδέα του Αλγορίθµου
2. Κώδικας σε C
3. Παράδειγµα Εκτέλεσης
4. Άσκηση
Β. Ασκήσεις
A. Θεωρία
1. Αναζήτηση Στοιχείου σε Πίνακα
1. Ορισµός του Προβλήµατος
3∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
Η «Ταξινόµηση Πίνακα» είναι το υπολογιστικό πρόβληµα στο οποίο:
• Είσοδος: Ένας Πίνακας Στοιχείων
• Έξοδος: Ο ίδιος Πίνακας µε τα στοιχεία του Ταξινοµηµένα
Τα στοιχεία ταξινοµούνται:
Σε αύξουσα σειρά (από το µικρότερο στο µεγαλύτερο) [Σηµείωση: Θα µελετήσουµε την
ταξινόµηση σε αύξουσα σειρά στη θεωρία]
Σε φθίνουσα σειρά (από το µεγαλύτερο στο µικρότερο)
Θα µελετήσουµε 5 αλγόριθµους:
Την Ταξινόµηση µε Επιλογή (Selection Sort)
Την Ταξινόµηση µε Εισαγωγή (Insertion Sort)
Την Ταξινόµηση Φυσαλίδας (Bubble Sort)
Την Ταξινόµηση µε Συγχώνευση (Merge Sort)
Την Γρήγορη Ταξινόµηση (Quick Sort)
A. Θεωρία
2. Ταξινόµηση µε Επιλογή (Selection Sort)
1. Αλγοριθµική Ιδέα
∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 4
Ι∆ΕΑ της Selection Sort:
• Έχοντας ταξινοµήσει τα στοιχεία 0..i-1
• επέλεξε το ελάχιστο ανάµεσα στα i έως N-1 και τοποθέτησε το στην θέση i
1 3 … 8 14 15 32 9 … 19
Ταξινοµηµένος Αταξινόµητος
1
swap
2
Υλοποίηση:
• Στο βήµα i (0UN-1)
• Βρίσκω το ελάχιστο στις θέσεις i..N-1
• Το κάνω swap µε το στοιχείο στη θέση i
Ακολουθεί ο κώδικας σε C: Ο pinakas είναι ένας πίνακας Ν ακεραίων:
A. Θεωρία
2. Ταξινόµηση µε Επιλογή (Selection Sort)
2. Κώδικας σε C
5∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
/* Taksinomisi Selection Sort */
for (i=0; i<N; i++)
{
pos=i;
for (j=i+1; j<N; j++)
{
if (pinakas[j]<pinakas[pos])
pos=j;
}
swap(&pinakas[i], &pinakas[pos]);
}
A. Θεωρία
2. Ταξινόµηση µε Εισαγωγή (Insertion Sort)
3. Ένα Παράδειγµα Εκτέλεσης
∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 6
9 2 4 7 1 8 6 3i=0:
1 2 4 7 9 8 6 3i=1:
1 2 4 7 9 8 6 3i=2:
1 2 3 7 9 8 6 4i=3:
1 2 3 4 9 8 6 7i=4:
1 2 3 4 6 8 9 7i=5:
1 2 3 4 6 7 9 8i=6:
1 2 3 4 6 7 8 9i=7:
Αρχικός Πίνακας: 9 2 4 7 1 8 6 3
Τελικός Πίνακας: 1 2 3 4 6 7 8 9
A. Θεωρία
2. Ταξινόµηση µε Επιλογή (Selection Sort)
4. Άσκηση
7∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
Αφού µελετήσετε το πρόγραµµα selection_sort.c κατασκευάσετε συνάρτηση που παίρνει ως όρισµα
έναν πίνακα ακεραίων (και τη διάστασή του) και τον ταξινοµεί µε χρήση της selection sort.
A. Θεωρία
3. Ταξινόµηση µε Εισαγωγή (Insertion Sort)
1. Αλγοριθµική Ιδέα
∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 8
Ι∆ΕΑ της Insertion Sort:
• Έχοντας ταξινοµήσει τα στοιχεία 0..i-1
• Τοποθετεί το στοιχείο i ταξινοµηµένα στις θέσεις 0..i (µε ανταλλαγές µέχρι να βρει µικρότερο)
1 3 … 7 14 15 9 32 … 4
Ταξινοµηµένος Αταξινόµητος
swap
Υλοποίηση:
• Στο βήµα i (1UN-1)
• Κάνω συνεχή swap του στοιχείου i αριστερά, µέχρι να βρω κάποιο µικρότερο στοιχείο
swap
Ακολουθεί ο κώδικας σε C: Ο pinakas είναι ένας πίνακας Ν ακεραίων:
A. Θεωρία
3. Ταξινόµηση µε Εισαγωγή (Insertion Sort)
2. Κώδικας σε C
9∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
/* Taksinomisi me Eisagogi */
for (i=1; i<N; i++)
{
for (j=i; j>=1; j--)
{
if (pinakas[j]<pinakas[j-1])
swap(&pinakas[j], &pinakas[j-1]);
else
break;
}
}
A. Θεωρία
3. Ταξινόµηση µε Εισαγωγή (Insertion Sort)
3. Ένα Παράδειγµα Εκτέλεσης
∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 10
9 2 4 7 1 8 6 3i=1:
2 9 4 7 1 8 6 3i=2:
2 4 9 7 1 8 6 3i=3:
2 4 7 9 1 8 6 3i=4:
1 2 4 7 9 8 6 3i=5:
1 2 4 7 8 9 6 3i=6:
1 2 4 6 7 8 9 3i=7:
Αρχικός Πίνακας: 9 2 4 7 1 8 6 3
Τελικός Πίνακας: 1 2 3 4 6 7 8 9
A. Θεωρία
3. Ταξινόµηση µε Εισαγωγή (Insertion Sort)
4. Άσκηση
11∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
Αφού µελετήσετε το πρόγραµµα insertion_sort.c κατασκευάσετε συνάρτηση που παίρνει ως όρισµα
έναν πίνακα ακεραίων (και τη διάστασή του) και τον ταξινοµεί µε χρήση της insertion sort.
A. Θεωρία
4. Ταξινόµηση Φυσαλίδας (Bubble Sort)
1. Αλγοριθµική Ιδέα
∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 12
Ι∆ΕΑ της Bubble Sort:
• Έχοντας ταξινοµήσει τα στοιχεία 0..i-1
• Τα ελαφρύτερα (µικρότερα) στοιχεία αναδύονται µε µία σάρωση στις θέσεις Ν-1Ui
1 … 5 12 14 15 7 11 … 8
Ταξινοµηµένος Αταξινόµητος
Υλοποίηση:
• Στο βήµα i (0UN-1)
• Για j=N-1 έως i+1: Κάνω swap του PIN[j] µε το PIN[j-1] εάν PIN[j]<PIN[j-1]
Ακολουθεί ο κώδικας σε C: Ο pinakas είναι ένας πίνακας Ν ακεραίων:
A. Θεωρία
4. Ταξινόµηση Φυσαλίδας(Bubble Sort)
2. Κώδικας σε C
13∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
/* Taksinomisi Fysalidas */
for (i=0; i<N; i++)
{
for (j=N-1; j>=i+1; j--)
{
if (pinakas[j]<pinakas[j-1])
swap(&pinakas[j], &pinakas[j-1]);
}
}
A. Θεωρία
4. Ταξινόµηση Φυσαλίδας(Bubble Sort)
3. Ένα Παράδειγµα Εκτέλεσης
∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 14
9 2 4 7 1 8 6 3i=0:
1 9 2 4 7 3 8 6i=1:
1 2 9 3 4 7 6 8i=2:
1 2 3 9 4 6 7 8i=3:
1 2 3 4 9 6 7 8i=4:
1 2 3 4 6 9 7 8i=5:
1 2 3 4 6 7 9 8i=6:
1 2 3 4 6 7 8 9i=7:
Αρχικός Πίνακας: 9 2 4 7 1 8 6 3
Τελικός Πίνακας: 1 2 3 4 6 7 8 9
A. Θεωρία
4. Ταξινόµηση Φυσαλίδας(Bubble Sort)
4. Άσκηση
15∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
Αφού µελετήσετε το πρόγραµµα bubble_sort.c κατασκευάσετε συνάρτηση που παίρνει ως όρισµα
έναν πίνακα ακεραίων (και τη διάστασή του) και τον ταξινοµεί µε χρήση της bubble sort.
A. Θεωρία
5. Ταξινόµηση µε Συγχώνευση (Merge Sort)
1. Αλγοριθµική Ιδέα
∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 16
Ι∆ΕΑ της Merge Sort:
1. (Αναδροµικά) Ταξινόµησε το αριστερό µισό του πίνακα
2. (Αναδροµικά) Ταξινόµησε το δεξί µισό του πίνακα
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
0 1 2 3 4 5 6 7
1 4 6 7 9 11 18 20
8 9 10 11 12 13 14 15
2 3 5 10 13 14 19 22
3. Συγχώνευσε τα δύο κοµµάτια σε µία ταξινοµηµένη ακολουθία
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 2 3 4 5 6 7 9
0 1 2 3 4 5 6 7
1 4 6 7 9 11 18 20
8 9 10 11 12 13 14 15
2 3 5 10 13 14 19 22
Το σώµα του αλγορίθµου φαίνεται στον ακόλουθο κώδικα (o πίνακας έχει δηλωθεί ως int
pinakas[N] και οι µεταβλητές start,finish, middle είναι ακέραιες µεταβλητές):
A. Θεωρία
5. Ταξινόµηση µε Συγχώνευση (Merge Sort)
1. Αλγοριθµική Ιδέα
17∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
void mergesort(int *pinakas, int start, int finish)
{
int i,middle;
if (start==finish) /* 1 stoixeio */
return;
else if (start==finish-1) /* 2 stoixeia */
{
if (pinakas[start]>pinakas[finish])
swap(&pinakas[start], &pinakas[finish]);
}
else
{
middle=(start+finish)/2;
mergesort(pinakas,start,middle);
mergesort(pinakas,middle+1,finish);
merge(pinakas,start,finish);
}
}
18∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
Πίνακας προς ταξινόµηση:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
18 7 4 11 9 20 6 1 22 19 14 5 2 9 10 13
A. Θεωρία
5. Ταξινόµηση µε Συγχώνευση (Merge Sort)
3. Ένα Παράδειγµα Εκτέλεσης
19∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
Αναδροµική Κλήση MergeSort(Α,0,15)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
0 1 2 3 4 5 6 7
18 7 4 11 9 20 6 1
8 9 10 11 12 13 14 15
22 19 14 5 2 3 10 13
A. Θεωρία
5. Ταξινόµηση µε Συγχώνευση (Merge Sort)
3. Ένα Παράδειγµα Εκτέλεσης
20∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
Αναδροµική Κλήση (A,0,7)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
0 1 2 3 4 5 6 7
18 7 4 11 9 20 6 1
8 9 10 11 12 13 14 15
22 19 14 5 2 3 10 13
0 1 2 3
18 7 4 11
4 5 6 7
9 20 6 1
A. Θεωρία
5. Ταξινόµηση µε Συγχώνευση (Merge Sort)
3. Ένα Παράδειγµα Εκτέλεσης
21∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
Αναδροµική Κλήση (A,0,3)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
0 1 2 3 4 5 6 7
18 7 4 11 9 20 6 1
8 9 10 11 12 13 14 15
22 19 14 5 2 3 10 13
0 1 2 3
18 7 4 11
4 5 6 7
9 20 6 1
0 1
18 7
3 4
4 11
A. Θεωρία
5. Ταξινόµηση µε Συγχώνευση (Merge Sort)
3. Ένα Παράδειγµα Εκτέλεσης
22∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
Αναδροµική Κλήση (A,0,1): Ταξινοµηση του υποπίνακα
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
0 1 2 3 4 5 6 7
18 7 4 11 9 20 6 1
8 9 10 11 12 13 14 15
22 19 14 5 2 3 10 13
0 1 2 3
18 7 4 11
4 5 6 7
9 20 6 1
0 1
7 18
2 3
4 11
A. Θεωρία
5. Ταξινόµηση µε Συγχώνευση (Merge Sort)
3. Ένα Παράδειγµα Εκτέλεσης
23∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
Αναδροµική Κλήση (A,2,3): Ταξινοµηση του υποπίνακα
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
0 1 2 3 4 5 6 7
18 7 4 11 9 20 6 1
8 9 10 11 12 13 14 15
22 19 14 5 2 3 10 13
0 1 2 3
18 7 4 11
4 5 6 7
9 20 6 1
0 1
7 18
2 3
4 11
A. Θεωρία
5. Ταξινόµηση µε Συγχώνευση (Merge Sort)
3. Ένα Παράδειγµα Εκτέλεσης
24∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
Αναδροµική Κλήση (A,0,3): Συγχώνευση των δύο υποπινάκων
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
0 1 2 3 4 5 6 7
18 7 4 11 9 20 6 1
8 9 10 11 12 13 14 15
22 19 14 5 2 3 10 13
0 1 2 3
4 7 11 18
4 5 6 7
9 20 6 1
0 1
7 18
2 3
4 11
A. Θεωρία
5. Ταξινόµηση µε Συγχώνευση (Merge Sort)
3. Ένα Παράδειγµα Εκτέλεσης
25∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
Αναδροµική Κλήση (A,4,7)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
0 1 2 3 4 5 6 7
18 7 4 11 9 20 6 1
8 9 10 11 12 13 14 15
22 19 14 5 2 3 10 13
0 1 2 3
4 7 11 18
4 5 6 7
9 20 6 1
0 1
7 18
2 3
4 11
4 5
9 20
6 7
6 1
A. Θεωρία
5. Ταξινόµηση µε Συγχώνευση (Merge Sort)
3. Ένα Παράδειγµα Εκτέλεσης
26∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
Αναδροµική Κλήση (A,4,5): Ταξινοµηση του υποπίνακα
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
0 1 2 3 4 5 6 7
18 7 4 11 9 20 6 1
8 9 10 11 12 13 14 15
22 19 14 5 2 3 10 13
0 1 2 3
4 7 11 18
4 5 6 7
9 20 6 1
0 1
7 18
2 3
4 11
4 5
9 20
6 7
6 1
A. Θεωρία
5. Ταξινόµηση µε Συγχώνευση (Merge Sort)
3. Ένα Παράδειγµα Εκτέλεσης
27∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
Αναδροµική Κλήση (A,6,7): Ταξινοµηση του υποπίνακα
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
0 1 2 3 4 5 6 7
18 7 4 11 9 20 6 1
8 9 10 11 12 13 14 15
22 19 14 5 2 3 10 13
0 1 2 3
4 7 11 18
4 5 6 7
9 20 6 1
0 1
7 18
2 3
4 11
4 5
9 20
6 7
1 6
A. Θεωρία
5. Ταξινόµηση µε Συγχώνευση (Merge Sort)
3. Ένα Παράδειγµα Εκτέλεσης
28∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
Αναδροµική Κλήση (A,4,7): Συγχώνευση των δύο υποπινάκων
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
0 1 2 3 4 5 6 7
18 7 4 11 9 20 6 1
8 9 10 11 12 13 14 15
22 19 14 5 2 3 10 13
0 1 2 3
4 7 11 18
4 5 6 7
1 6 9 20
0 1
7 18
2 3
4 11
4 5
9 20
6 7
1 6
A. Θεωρία
5. Ταξινόµηση µε Συγχώνευση (Merge Sort)
3. Ένα Παράδειγµα Εκτέλεσης
29∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
Αναδροµική Κλήση (A,0,7): Συγχώνευση των δύο υποπινάκων
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
0 1 2 3 4 5 6 7
1 4 6 7 9 11 18 20
8 9 10 11 12 13 14 15
22 19 14 5 2 3 10 13
0 1 2 3
4 7 11 18
4 5 6 7
1 6 9 20
0 1
7 18
2 3
4 11
4 5
9 20
6 7
1 6
A. Θεωρία
5. Ταξινόµηση µε Συγχώνευση (Merge Sort)
3. Ένα Παράδειγµα Εκτέλεσης
30∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
Αντίστοιχα θα γίνουν όλες οι αναδροµικές κλήσεις στο (8,15)
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
0 1 2 3 4 5 6 7
1 4 6 7 9 11 18 20
8 9 10 11 12 13 14 15
2 3 5 10 13 14 19 22
0 1 2 3
4 7 11 18
4 5 6 7
1 6 9 20
0 1
7 18
2 3
4 11
4 5
9 20
6 7
1 6
8 9 10 11
5 14 19 22
12 13 14 15
2 3 10 13
8 9
19 22
10 11
5 14
12 13
2 3
14 15
10 13
A. Θεωρία
5. Ταξινόµηση µε Συγχώνευση (Merge Sort)
3. Ένα Παράδειγµα Εκτέλεσης
31∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
Αναδροµική Κλήση (A,0,15): Συγχώνευση των δύο υποπινάκων
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 2 3 4 5 6 7 9 10 11 13 14 18 19 20 22
0 1 2 3 4 5 6 7
1 4 6 7 9 11 18 20
8 9 10 11 12 13 14 15
2 3 5 10 13 14 19 22
0 1 2 3
4 7 11 18
4 5 6 7
1 6 9 20
0 1
7 18
2 3
4 11
4 5
9 20
6 7
1 6
8 9 10 11
5 14 19 22
12 13 14 15
2 3 10 13
8 9
19 22
10 11
5 14
12 13
2 3
14 15
10 13
A. Θεωρία
5. Ταξινόµηση µε Συγχώνευση (Merge Sort)
3. Ένα Παράδειγµα Εκτέλεσης
32∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
Η διαδικασία merge δουλεύει ως εξής:
Σαρώνει τους δύο πίνακες ταυτόχρονα από αριστερά προς τα δεξιά.
Συγκρίνει τα δύο τρέχοντα στοιχεία των πινάκων
Επιλέγει το µικρότερο και το βάζει στην επόµενη θέση της ταξινοµηµένης ακολουθίας
Όταν εξαντληθούν τα στοιχεία του ένος από τους δύο πίνακες, βάζουµε όσα στοιχεία απέµειναν
από τον άλλο πίνακα στο τέλος της ταξινοµηµένης ακολουθίας.
Στο παράδειγµα βλέπουµε µερικά βήµατα και τους µετρητές που χρησιµοποιούνται.
A. Θεωρία
5. Ταξινόµηση µε Συγχώνευση (Merge Sort)
4. Η διαδικασία merge
33∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
34∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
Μία υλοποίηση της merge είναι η ακόλουθη:
void merge(int *pinakas, int start, int finish)
{
int C[SIZE];
int i,j,k;
int middle, n, m;
middle=(start+finish)/2;
/* 1os pinakas PIN[start..middle]=PIN[i..n] */
i=start;
n=middle;
/* 2os pinakas PIN[middle+1..finish]=PIN[j...m] */
j=middle+1;
m=finish;
/* C: sigxwneumenos pinakas */
k=0;
A. Θεωρία
5. Ταξινόµηση µε Συγχώνευση (Merge Sort)
4. Η διαδικασία merge
(συνεχίζεται…)
35∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
Μία υλοποίηση της merge είναι η ακόλουθη:
(συνέχεια…)
/* 1. Sigxwneusi twn dio pinakwn */
while (i<=n && j<=m)
{
if (pinakas[i]<pinakas[j])
{
C[k]=pinakas[i];
k++;
i++;
}
else
{
C[k]=pinakas[j];
k++;
j++;
}
}
A. Θεωρία
5. Ταξινόµηση µε Συγχώνευση (Merge Sort)
4. Η διαδικασία merge
(συνεχίζεται…)
36∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
Μία υλοποίηση της merge είναι η ακόλουθη:
(συνέχεια…)
/* 2. Antigrafi tou pinaka pou perissevei sto telos tou sigxwneumenou pinaka */
if (i==n+1) /* Eksantlithike o 1os pinakas */
{
while (j<=m)
{
C[k]=pinakas[j];
k++;
j++;
}
}
else /* Eksantlithike o 2os pinakas */
{
while (i<=n)
{
C[k]=pinakas[i];
k++;
i++;
}
}
A. Θεωρία
5. Ταξινόµηση µε Συγχώνευση (Merge Sort)
4. Η διαδικασία merge
(συνεχίζεται…)
37∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
Μία υλοποίηση της merge είναι η ακόλουθη:
(συνέχεια…)
/* 3. Antigrafi tou C ston pinakas */
k=0;
i=start;
while (i<=finish)
{
pinakas[i]=C[k];
i++;
k++;
}
}
A. Θεωρία
5. Ταξινόµηση µε Συγχώνευση (Merge Sort)
4. Η διαδικασία merge
(συνεχίζεται…)
38∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
Άσκηση: Μελετήστε το πρόγραµµα mergesort.c και “καθαρίστε” το από τις εκτυπώσεις ώστε η
mergesort να είναι µια αυτόνοµη συνάρτηση.
A. Θεωρία
5. Ταξινόµηση µε Συγχώνευση (Merge Sort)
5. Άσκηση
A. Θεωρία
6. Γρήγορη Ταξινόµηση (Quick Sort)
1. Ιδέα του Αλγορίθµου
39∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
Ι∆ΕΑ της QuickSort:
1. Επιλέγει ένα Στοιχείο του Πίνακα (Οδηγό Στοιχείο – Εδώ το στοιχείο που είναι στην πρώτη
θέση)
2. Χωρίζει τον πίνακα σε τρία µέρη:
• Τα στοιχεία που είναι µικρότερα του οδηγού στοιχείου
• Το οδηγό στοιχείο
• Τα στοιχεία που είναι µεγαλύτερα ή ίσα του οδηγού στοιχείου
0 1 2 3 4 5 6 7 8 9
18 7 4 11 9 20 6 1 22 19
6 7 4 11 9 1 18 20 22 19
7 8 9
20 22 19
3. Επαναλαµβάνει αναδροµικά στους δύο υποπίνακες που προέκυψαν.
6
18
0 1 2 3 4 5
6 7 4 11 9 1
A. Θεωρία
6. Γρήγορη Ταξινόµηση (Quick Sort)
2. Κώδικας σε C
40∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
Η υλοποίηση σε γλώσσα C είναι η ακόλουθη:
Όπου partition είναι µια συνάρτηση που πραγµατοποιεί τον χωρισµό του πίνακα σε µικρότερα
και µεγαλύτερα (ή ίσα) στοιχεία σε σχέση µε το οδηγό στοιχείο.
Επιστρέφει τη θέση του τελευταίου µικρότερου στοιχείου από το οδηγό στοιχείο.
Συνεπώς οι δύο πίνακες στους οποίους γίνεται η αναδροµή είναι:
start..pos
pos+1..finish
Στην επόµενη διαφάνεια βλέπουµε ένα παράδειγµα εκτέλεσης.
void quicksort(int *pinakas, int start, int finish)
{
int pos;
if (start<finish)
{
pos=partition(pinakas,start,finish);
quicksort(pinakas,start,pos-1);
quicksort(pinakas,pos+1,finish);
}
}
Γρήγορη Ταξινόµηση QuickSort (3.Παράδειγµα Εκτέλεσης)
41∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
18 7 4 11 9 20 6 1 22 19 14 5 8 3 10 13
8 7 4 11 9 13 6 1 10 3 14 5 18 19 22 20
0 1 2 3 4 5 6 7 8 9 10 11
8 7 4 11 9 13 6 1 10 3 14 5
6 7 4 5 3 1 8 13 10 9 14 11
13 14 15
19 22 20
19 22 20
14 15
22 20
20 22
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 3 4 5 6 7 8 9 10 11 13 14 18 19 20 22
0 1 2 3 4 5
6 7 4 5 3 1
3 1 4 5 6 7
7 8 9 10 11
13 10 9 14 11
11 10 9 13 14
5
7
7
0 1 2 3
3 1 4 5
1 3 4 5
0
1
1
2 3
4 5
4 5
3
5
5
7 8 9
11 10 9
9 10 11
11
14
14
7 8
9 10
9 10
8
10
10
14
20
20
42∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
Η διαµέριση των στοιχείων στα µικρότερα και µεγαλύτερα ή ίσα µπορεί να γίνει µε πολλούς
τρόπους:
Π.χ. ένας απλός τρόπος είναι να χρησιµοποιήσουµε έναν βοηθητικό πίνακα που να
βάζουµε στα αριστερά τα µικρότερα στοιχεία και στα δεξιά τα µεγαλύτερα στοιχεία του
οδηγού.
Ωστόσο εµείς θα µελετήσουµε έναν τρόπο διαµέρισης, που είναι µια µικρή παραλλαγή του
σχήµατος Hoare:
Σαρώνουµε τον πίνακα από αριστερά ψάχνοντας για ένα στοιχείο που είναι µεγαλύτερο
του οδηγού
Σαρώνουµε τον πίνακα από δεξιά ψάχνοντας για ένα στοιχείο που είναι µικρότερο (ή ίσο)
του οδηγού
Ανταλλάσσουµε τα δύο στοιχεία και επαναλαµβάνουµε µέχρι να γίνει ο χωρισµός των
στοιχείων.
Μελετούµε το παράδειγµα της επόµενης διαφάνειας
A. Θεωρία
6. Γρήγορη Ταξινόµηση (Quick Sort)
4. Η διαδικασία partition
Παράδειγµα εκτέλεσης της partition:
Τερµατισµός:
Ανταλλαγή του οδηγού στοιχείου µε το «δεξιό» δείκτη
A. Θεωρία
6. Γρήγορη Ταξινόµηση (Quick Sort)
4. Η διαδικασία partition
43∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
0 1 2 3 4 5 6 7 8 9
9 8 4 11 2 20 6 1 22 19
i=3 j=8
0 1 2 3 4 5 6 7 8 9
9 8 4 11 2 20 6 1 22 19
8 4 1 11 22 19
0 1 2 3 4 5 6 7 8 9
9 8 4 1 2 20 6 11 22 19
9 8 4 1 11 22 19i=5 j=6
0 1 2 3 4 5 6 7 8 9
9 8 4 1 2 6 20 11 22 19
0 1 2 3 4 5 6 7 8 9
9 8 4 1 2 20 6 11 22 19
9 8 4 1 2 6 20 11 22 19
i=7j=6
0 1 2 3 4 5 6 7 8 9
9 8 4 1 2 6 20 11 22 19
0 1 2 3 4 5 6 7 8 9
6 8 4 1 2 9 20 11 22 19
A. Θεωρία
6. Γρήγορη Ταξινόµηση (Quick Sort)
4. Η διαδικασία partition
44∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
Η υλοποίηση της partition µε το σχήµα του Hoare σε ψευδογλώσσα είναι η ακόλουθη:
int partition(int *pinakas, int start, int finish)
{
int pivot, i, j;
pivot=pinakas[start];
i=start+1;
j=finish;
while(1)
{
while(pinakas[i]<=pivot && i<=finish)
i++;
while(pinakas[j]>pivot && j>=start)
j--;
if (i<j)
swap(&pinakas[i],&pinakas[j]);
else
{
swap(&pinakas[start],&pinakas[j]);
return j;
}
}
}
A. Θεωρία
6. Γρήγορη Ταξινόµηση (Quick Sort)
5. Άσκηση
45∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
Άσκηση: Μελετήστε το πρόγραµµα quicksort.c και “καθαρίστε” το από τις εκτυπώσεις ώστε η
quicksort να είναι µια αυτόνοµη συνάρτηση.
Β. Ασκήσεις
Εφαρµογή 1: Ταξινόµηση Πραγµατικών Αριθµών
∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 46
Μετατρέψτε την bubble sort και την quick sort έτσι ώστε να πραγµατοποιούν ταξινόµηση σε
τύπο δεδοµένων double.
Β. Ασκήσεις
Εφαρµογή 2: Ταξινόµηση σε Φθίνουσα Σειρά
∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 47
Μετατρέψτε την insertion sort και την merge sort έτσι ώστε να πραγµατοποιούν ταξινόµηση σε
φθίνουσα σειρά.
Β. Ασκήσεις
Εφαρµογή 3: Quick Sort που χρησιµοποιεί Insertion Sort
∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 48
Προτείνεται η εξής υβριδική µέθοδος ταξινόµησης:
Εκτελούµε τον αλγόριθµο Quick Sort
Αν ωστόσο ο πίνακας έχει το πολύ 5 στοιχεία, τότε αυτός ταξινοµείται µε χρήση της
insertion sort
Κατασκευάστε την νέα µέθοδο ταξινόµησης µε όνοµα hybrid sort και αναδείξτε τη χρήση της µε
µία κατάλληλη συνάρτηση main.
Β. Ασκήσεις
Εφαρµογή 4.1: Εκτέλεση όλων των αλγορίθµων
∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 49
∆ηµιουργήστε ένα πρόγραµµα το οποίο:
∆ηµιουργείται ένας πίνακας 100 ακεραίων αριθµών. Οι τιµές του πίνακα να είναι ακέραιοι
στο εύρος [0U1000]
Καλούνται διαδοχικά οι 5 αλγόριθµοι ταξινόµησης που µελετήσαµε και προβάλλεται το
αποτέλεσµα της ταξινόµησης του πίνακα.
Β. Ασκήσεις
Εφαρµογή 4.2: Πλήθος Συγκρίσεων των Αλγορίθµων Αναζήτησης
∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 50
Τροποποιήστε τους 3 µη αναδροµικούς αλγορίθµους, ώστε να µετράνε το πλήθος των
συγκρίσεων που πραγµατοποιούνται.
Μετά την εκτέλεση του αντίστοιχου αλγορίθµου να τυπώνεται το πλήθος των συγκρίσεων που
πραγµατοποιήθηκαν.
Σηµείωση: Όταν λέµε συγκρίσεις εννοούµε τις συγκρίσεις που γίνονται µεταξύ στοιχείων
του πίνακα.
Β. Ασκήσεις
Εφαρµογή 4.3: Πλήθος Συγκρίσεων των Αλγορίθµων Αναζήτησης
∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 51
Τροποποιήστε τους 2 αναδροµικούς αλγορίθµους, ώστε να µετράνε το πλήθος των συγκρίσεων
που πραγµατοποιούνται.
Μετά την εκτέλεση του αντίστοιχου αλγορίθµου να τυπώνεται το πλήθος των συγκρίσεων που
πραγµατοποιήθηκαν.
Σηµείωση: Όταν λέµε συγκρίσεις εννοούµε τις συγκρίσεις που γίνονται µεταξύ στοιχείων
του πίνακα.
Β. Ασκήσεις
Εφαρµογή 4.4: Πειραµατική Μελέτη των Αλγορίθµων Αναζήτησης
∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 52
Πειραµατιστείτε δοκιµάζοντας διαφορετικές διαστάσεις στον πίνακα.
Ποιος αλγόριθµος δείχνει να επικρατεί των άλλων;

More Related Content

What's hot

Η Γλώσσα C - Μάθημα 1
Η Γλώσσα C - Μάθημα 1Η Γλώσσα C - Μάθημα 1
Η Γλώσσα C - Μάθημα 1Dimitris Psounis
 
ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΣΥΝΔΥΑΣΤΙΚΗΣ
ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΣΥΝΔΥΑΣΤΙΚΗΣΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΣΥΝΔΥΑΣΤΙΚΗΣ
ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΣΥΝΔΥΑΣΤΙΚΗΣDimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7Dimitris Psounis
 
Η Γλώσσα C - Μάθημα 3
Η Γλώσσα C - Μάθημα 3 Η Γλώσσα C - Μάθημα 3
Η Γλώσσα C - Μάθημα 3 Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4Dimitris Psounis
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣDimitris Psounis
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥDimitris Psounis
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑDimitris Psounis
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣDimitris Psounis
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 9
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 9 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 9
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 9 Dimitris Psounis
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥDimitris Psounis
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11Dimitris Psounis
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12Dimitris Psounis
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10 Dimitris Psounis
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝDimitris Psounis
 

What's hot (20)

Η Γλώσσα C - Μάθημα 1
Η Γλώσσα C - Μάθημα 1Η Γλώσσα C - Μάθημα 1
Η Γλώσσα C - Μάθημα 1
 
ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΣΥΝΔΥΑΣΤΙΚΗΣ
ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΣΥΝΔΥΑΣΤΙΚΗΣΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΣΥΝΔΥΑΣΤΙΚΗΣ
ΠΛΗ20 ΤΥΠΟΛΟΓΙΟ ΣΥΝΔΥΑΣΤΙΚΗΣ
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
 
Η Γλώσσα C - Μάθημα 3
Η Γλώσσα C - Μάθημα 3 Η Γλώσσα C - Μάθημα 3
Η Γλώσσα C - Μάθημα 3
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 4
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 4 - ΤΕΛΕΣΤΕΣ και η ΔΟΜΗ ΕΛΕΓΧΟΥ
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ
 
ΠΛΗ30 ΜΑΘΗΜΑ 2.1
ΠΛΗ30 ΜΑΘΗΜΑ 2.1ΠΛΗ30 ΜΑΘΗΜΑ 2.1
ΠΛΗ30 ΜΑΘΗΜΑ 2.1
 
ΠΛΗ10 ΜΑΘΗΜΑ 1.1
ΠΛΗ10 ΜΑΘΗΜΑ 1.1ΠΛΗ10 ΜΑΘΗΜΑ 1.1
ΠΛΗ10 ΜΑΘΗΜΑ 1.1
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 9
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 9 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 9
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 9
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 11
 
ΠΛΗ20 ΜΑΘΗΜΑ 6.3
ΠΛΗ20 ΜΑΘΗΜΑ 6.3ΠΛΗ20 ΜΑΘΗΜΑ 6.3
ΠΛΗ20 ΜΑΘΗΜΑ 6.3
 
ΠΛΗ31 ΜΑΘΗΜΑ 1.2
ΠΛΗ31 ΜΑΘΗΜΑ 1.2ΠΛΗ31 ΜΑΘΗΜΑ 1.2
ΠΛΗ31 ΜΑΘΗΜΑ 1.2
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.4
ΠΛΗ10 ΜΑΘΗΜΑ 2.4ΠΛΗ10 ΜΑΘΗΜΑ 2.4
ΠΛΗ10 ΜΑΘΗΜΑ 2.4
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 10
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 14 - ΕΜΒΕΛΕΙΑ ΜΕΤΑΒΛΗΤΩΝ
 

Viewers also liked

ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3 (ΕΚΤΥΠΩΣΗ)
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3 (ΕΚΤΥΠΩΣΗ)ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3 (ΕΚΤΥΠΩΣΗ)
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ (ΕΚΤΥΠΩΣΗ)
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ (ΕΚΤΥΠΩΣΗ)ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ (ΕΚΤΥΠΩΣΗ)
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ (ΕΚΤΥΠΩΣΗ)
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ (ΕΚΤΥΠΩΣΗ)ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ (ΕΚΤΥΠΩΣΗ)
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ (ΕΚΤΥΠΩΣΗ)Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ (ΕΚΤΥΠΩΣΗ)ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑDimitris Psounis
 

Viewers also liked (6)

ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3 (ΕΚΤΥΠΩΣΗ)
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3 (ΕΚΤΥΠΩΣΗ)ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3 (ΕΚΤΥΠΩΣΗ)
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3 (ΕΚΤΥΠΩΣΗ)
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ (ΕΚΤΥΠΩΣΗ)
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ (ΕΚΤΥΠΩΣΗ)ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ (ΕΚΤΥΠΩΣΗ)
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ (ΕΚΤΥΠΩΣΗ)
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ (ΕΚΤΥΠΩΣΗ)
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ (ΕΚΤΥΠΩΣΗ)ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ (ΕΚΤΥΠΩΣΗ)
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ (ΕΚΤΥΠΩΣΗ)
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ (ΕΚΤΥΠΩΣΗ)Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 13 - ΔΟΜΕΣ (ΕΚΤΥΠΩΣΗ)
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ (ΕΚΤΥΠΩΣΗ)ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ (ΕΚΤΥΠΩΣΗ)
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 17 - ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ
 

Similar to ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3

Numerical_Methods_and_Computational_Tools
Numerical_Methods_and_Computational_ToolsNumerical_Methods_and_Computational_Tools
Numerical_Methods_and_Computational_ToolsSophia Tsiopou
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.7
ΠΛΗ10 ΜΑΘΗΜΑ 2.7 ΠΛΗ10 ΜΑΘΗΜΑ 2.7
ΠΛΗ10 ΜΑΘΗΜΑ 2.7 Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8Dimitris Psounis
 
Κεφάλαιο 1ο - Φύλλα εργασίας 1 μέχρι 13
Κεφάλαιο 1ο - Φύλλα εργασίας 1 μέχρι 13Κεφάλαιο 1ο - Φύλλα εργασίας 1 μέχρι 13
Κεφάλαιο 1ο - Φύλλα εργασίας 1 μέχρι 13Μάκης Χατζόπουλος
 
Agumnasiou2008
Agumnasiou2008Agumnasiou2008
Agumnasiou2008bloggdg
 
4ο θέμα άλγεβρας β΄ λυκείου
4ο θέμα άλγεβρας β΄ λυκείου4ο θέμα άλγεβρας β΄ λυκείου
4ο θέμα άλγεβρας β΄ λυκείουKonstantinos Georgiou
 
εξισωσεις ανισωσεις-απολυτα-ριζικα
εξισωσεις ανισωσεις-απολυτα-ριζικαεξισωσεις ανισωσεις-απολυτα-ριζικα
εξισωσεις ανισωσεις-απολυτα-ριζικαΜάκης Χατζόπουλος
 
ΠΟΥΚΑΜΙΣΑΣ ΘΕΜΑΤΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΕΠΠ 2016 ΚΑΙ ΛΥΣΕΙΣ
ΠΟΥΚΑΜΙΣΑΣ ΘΕΜΑΤΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΕΠΠ 2016 ΚΑΙ ΛΥΣΕΙΣΠΟΥΚΑΜΙΣΑΣ ΘΕΜΑΤΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΕΠΠ 2016 ΚΑΙ ΛΥΣΕΙΣ
ΠΟΥΚΑΜΙΣΑΣ ΘΕΜΑΤΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΕΠΠ 2016 ΚΑΙ ΛΥΣΕΙΣAnastasios Timotheidis
 
Math gen themata_lyseis_2017
Math gen themata_lyseis_2017Math gen themata_lyseis_2017
Math gen themata_lyseis_2017Christos Loizos
 
Άλγεβρα 2α 3α Β ΕΠΑΛ 25_5_2022.docx
Άλγεβρα 2α 3α Β ΕΠΑΛ 25_5_2022.docxΆλγεβρα 2α 3α Β ΕΠΑΛ 25_5_2022.docx
Άλγεβρα 2α 3α Β ΕΠΑΛ 25_5_2022.docxDina Kiourtidou
 
Πυθαγόρειο Θεώρημα
Πυθαγόρειο ΘεώρημαΠυθαγόρειο Θεώρημα
Πυθαγόρειο Θεώρημαfanifanius
 
ανάπτυξη 2006 απ
ανάπτυξη 2006 απανάπτυξη 2006 απ
ανάπτυξη 2006 απeducast
 
Eykleidhs 2012 13 solutionsfinal
Eykleidhs 2012 13 solutionsfinalEykleidhs 2012 13 solutionsfinal
Eykleidhs 2012 13 solutionsfinalChristos Loizos
 
ΠΛΗ30 Τυπολόγιο Ενότητας 1
ΠΛΗ30 Τυπολόγιο Ενότητας 1ΠΛΗ30 Τυπολόγιο Ενότητας 1
ΠΛΗ30 Τυπολόγιο Ενότητας 1Dimitris Psounis
 
γ τάξη αλγόριθμος
γ τάξη αλγόριθμοςγ τάξη αλγόριθμος
γ τάξη αλγόριθμοςvfilip
 

Similar to ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3 (20)

Numerical_Methods_and_Computational_Tools
Numerical_Methods_and_Computational_ToolsNumerical_Methods_and_Computational_Tools
Numerical_Methods_and_Computational_Tools
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.7
ΠΛΗ10 ΜΑΘΗΜΑ 2.7 ΠΛΗ10 ΜΑΘΗΜΑ 2.7
ΠΛΗ10 ΜΑΘΗΜΑ 2.7
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
 
ΠΛΗ10 ΜΑΘΗΜΑ 1.2
ΠΛΗ10 ΜΑΘΗΜΑ 1.2ΠΛΗ10 ΜΑΘΗΜΑ 1.2
ΠΛΗ10 ΜΑΘΗΜΑ 1.2
 
Lyseis statistic
Lyseis statisticLyseis statistic
Lyseis statistic
 
ΠΛΗ30 ΜΑΘΗΜΑ 1.4
ΠΛΗ30 ΜΑΘΗΜΑ 1.4ΠΛΗ30 ΜΑΘΗΜΑ 1.4
ΠΛΗ30 ΜΑΘΗΜΑ 1.4
 
Κεφάλαιο 1ο - Φύλλα εργασίας 1 μέχρι 13
Κεφάλαιο 1ο - Φύλλα εργασίας 1 μέχρι 13Κεφάλαιο 1ο - Φύλλα εργασίας 1 μέχρι 13
Κεφάλαιο 1ο - Φύλλα εργασίας 1 μέχρι 13
 
Agumnasiou2008
Agumnasiou2008Agumnasiou2008
Agumnasiou2008
 
4ο θέμα άλγεβρας β΄ λυκείου
4ο θέμα άλγεβρας β΄ λυκείου4ο θέμα άλγεβρας β΄ λυκείου
4ο θέμα άλγεβρας β΄ λυκείου
 
εξισωσεις ανισωσεις-απολυτα-ριζικα
εξισωσεις ανισωσεις-απολυτα-ριζικαεξισωσεις ανισωσεις-απολυτα-ριζικα
εξισωσεις ανισωσεις-απολυτα-ριζικα
 
ΠΟΥΚΑΜΙΣΑΣ ΘΕΜΑΤΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΕΠΠ 2016 ΚΑΙ ΛΥΣΕΙΣ
ΠΟΥΚΑΜΙΣΑΣ ΘΕΜΑΤΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΕΠΠ 2016 ΚΑΙ ΛΥΣΕΙΣΠΟΥΚΑΜΙΣΑΣ ΘΕΜΑΤΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΕΠΠ 2016 ΚΑΙ ΛΥΣΕΙΣ
ΠΟΥΚΑΜΙΣΑΣ ΘΕΜΑΤΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΕΠΠ 2016 ΚΑΙ ΛΥΣΕΙΣ
 
Math gen themata_lyseis_2017
Math gen themata_lyseis_2017Math gen themata_lyseis_2017
Math gen themata_lyseis_2017
 
Άλγεβρα 2α 3α Β ΕΠΑΛ 25_5_2022.docx
Άλγεβρα 2α 3α Β ΕΠΑΛ 25_5_2022.docxΆλγεβρα 2α 3α Β ΕΠΑΛ 25_5_2022.docx
Άλγεβρα 2α 3α Β ΕΠΑΛ 25_5_2022.docx
 
Πυθαγόρειο Θεώρημα
Πυθαγόρειο ΘεώρημαΠυθαγόρειο Θεώρημα
Πυθαγόρειο Θεώρημα
 
ανάπτυξη 2006 απ
ανάπτυξη 2006 απανάπτυξη 2006 απ
ανάπτυξη 2006 απ
 
ΠΛΗ10 ΤΕΣΤ 27
ΠΛΗ10 ΤΕΣΤ 27ΠΛΗ10 ΤΕΣΤ 27
ΠΛΗ10 ΤΕΣΤ 27
 
Eykleidhs 2012 13 solutionsfinal
Eykleidhs 2012 13 solutionsfinalEykleidhs 2012 13 solutionsfinal
Eykleidhs 2012 13 solutionsfinal
 
ΠΛΗ30 Τυπολόγιο Ενότητας 1
ΠΛΗ30 Τυπολόγιο Ενότητας 1ΠΛΗ30 Τυπολόγιο Ενότητας 1
ΠΛΗ30 Τυπολόγιο Ενότητας 1
 
ΠΛΗ30 ΜΑΘΗΜΑ 1.1
ΠΛΗ30 ΜΑΘΗΜΑ 1.1ΠΛΗ30 ΜΑΘΗΜΑ 1.1
ΠΛΗ30 ΜΑΘΗΜΑ 1.1
 
γ τάξη αλγόριθμος
γ τάξη αλγόριθμοςγ τάξη αλγόριθμος
γ τάξη αλγόριθμος
 

More from Dimitris Psounis

Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣDimitris Psounis
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)Dimitris Psounis
 
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)Dimitris Psounis
 
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣDimitris Psounis
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣDimitris Psounis
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)Dimitris Psounis
 
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ CC++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ CDimitris Psounis
 
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)Dimitris Psounis
 
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6Dimitris Psounis
 
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5Dimitris Psounis
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2Dimitris Psounis
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 

More from Dimitris Psounis (20)

Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
 
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
 
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
 
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ CC++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
 
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
 
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
 
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ31 - ΤΕΣΤ 33
ΠΛΗ31 - ΤΕΣΤ 33ΠΛΗ31 - ΤΕΣΤ 33
ΠΛΗ31 - ΤΕΣΤ 33
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ31 ΤΕΣΤ 32
ΠΛΗ31 ΤΕΣΤ 32ΠΛΗ31 ΤΕΣΤ 32
ΠΛΗ31 ΤΕΣΤ 32
 
ΠΛΗ31 ΤΕΣΤ 31
ΠΛΗ31 ΤΕΣΤ 31ΠΛΗ31 ΤΕΣΤ 31
ΠΛΗ31 ΤΕΣΤ 31
 

Recently uploaded

ΠΑΝΕΛΛΗΝΙΕΣ 2024 ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΣΣΑ ΚΑΙ ΛΟΓΟΤΕΧΝΙΑ.pdf
ΠΑΝΕΛΛΗΝΙΕΣ 2024 ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΣΣΑ ΚΑΙ ΛΟΓΟΤΕΧΝΙΑ.pdfΠΑΝΕΛΛΗΝΙΕΣ 2024 ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΣΣΑ ΚΑΙ ΛΟΓΟΤΕΧΝΙΑ.pdf
ΠΑΝΕΛΛΗΝΙΕΣ 2024 ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΣΣΑ ΚΑΙ ΛΟΓΟΤΕΧΝΙΑ.pdfssuserf9afe7
 
Πασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptx
Πασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptxΠασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptx
Πασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptx36dimperist
 
Πασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptx
Πασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptxΠασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptx
Πασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptx36dimperist
 
2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της Ιταλίας
2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της Ιταλίας2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της Ιταλίας
2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της ΙταλίαςKonstantina Katirtzi
 
Πασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptx
Πασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptxΠασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptx
Πασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptx36dimperist
 
Μια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑ
Μια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑΜια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑ
Μια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑDimitra Mylonaki
 
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ 2008
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ  2008Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ  2008
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ 2008Θεόδωρος Μαραγκούλας
 
Η Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docx
Η Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docxΗ Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docx
Η Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docxeucharis
 
ΚΛΙΜΑΤΙΚΗ ΑΛΛΑΓΗ ΚΑΙ ΠΟΛΙΤΙΚΕΣ ΤΗΣ Ε.Ε..pptx
ΚΛΙΜΑΤΙΚΗ ΑΛΛΑΓΗ ΚΑΙ ΠΟΛΙΤΙΚΕΣ ΤΗΣ Ε.Ε..pptxΚΛΙΜΑΤΙΚΗ ΑΛΛΑΓΗ ΚΑΙ ΠΟΛΙΤΙΚΕΣ ΤΗΣ Ε.Ε..pptx
ΚΛΙΜΑΤΙΚΗ ΑΛΛΑΓΗ ΚΑΙ ΠΟΛΙΤΙΚΕΣ ΤΗΣ Ε.Ε..pptxssuserb0ed14
 
ΕΝΔΟΣΧΟΛΙΚΕΣ_ΠΡΟΓΡΑΜΜΑ endosxolikes 2023-24
ΕΝΔΟΣΧΟΛΙΚΕΣ_ΠΡΟΓΡΑΜΜΑ endosxolikes 2023-24ΕΝΔΟΣΧΟΛΙΚΕΣ_ΠΡΟΓΡΑΜΜΑ endosxolikes 2023-24
ΕΝΔΟΣΧΟΛΙΚΕΣ_ΠΡΟΓΡΑΜΜΑ endosxolikes 2023-242lykkomo
 
EKSETASTEA KAI DIDAKTEA YLH G TAKSHS GENIKOY LYKEIOY
EKSETASTEA KAI DIDAKTEA YLH G TAKSHS GENIKOY LYKEIOYEKSETASTEA KAI DIDAKTEA YLH G TAKSHS GENIKOY LYKEIOY
EKSETASTEA KAI DIDAKTEA YLH G TAKSHS GENIKOY LYKEIOYssuser369a35
 
Μια νύχτα σε κατάστημα παιχνιδιών.pdf
Μια νύχτα σε κατάστημα             παιχνιδιών.pdfΜια νύχτα σε κατάστημα             παιχνιδιών.pdf
Μια νύχτα σε κατάστημα παιχνιδιών.pdfDimitra Mylonaki
 
RODOPI CHALLENGE (ROC 50 MILES) 2024 ΤΕΧΝΙΚΗ ΕΝΗΜΕΡΩΣH
RODOPI CHALLENGE (ROC 50 MILES) 2024 ΤΕΧΝΙΚΗ ΕΝΗΜΕΡΩΣHRODOPI CHALLENGE (ROC 50 MILES) 2024 ΤΕΧΝΙΚΗ ΕΝΗΜΕΡΩΣH
RODOPI CHALLENGE (ROC 50 MILES) 2024 ΤΕΧΝΙΚΗ ΕΝΗΜΕΡΩΣHROUT Family
 
Γιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξεις
Γιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξειςΓιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξεις
Γιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξειςΟΛΓΑ ΤΣΕΧΕΛΙΔΟΥ
 
Επίσκεψη στο 11ο Γυμνάσιο Πάτρας
Επίσκεψη              στο 11ο Γυμνάσιο ΠάτραςΕπίσκεψη              στο 11ο Γυμνάσιο Πάτρας
Επίσκεψη στο 11ο Γυμνάσιο ΠάτραςDimitra Mylonaki
 

Recently uploaded (15)

ΠΑΝΕΛΛΗΝΙΕΣ 2024 ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΣΣΑ ΚΑΙ ΛΟΓΟΤΕΧΝΙΑ.pdf
ΠΑΝΕΛΛΗΝΙΕΣ 2024 ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΣΣΑ ΚΑΙ ΛΟΓΟΤΕΧΝΙΑ.pdfΠΑΝΕΛΛΗΝΙΕΣ 2024 ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΣΣΑ ΚΑΙ ΛΟΓΟΤΕΧΝΙΑ.pdf
ΠΑΝΕΛΛΗΝΙΕΣ 2024 ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΣΣΑ ΚΑΙ ΛΟΓΟΤΕΧΝΙΑ.pdf
 
Πασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptx
Πασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptxΠασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptx
Πασχαλινά αυγά από τη Β΄ τάξη του σχολείου μας.pptx
 
Πασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptx
Πασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptxΠασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptx
Πασχαλινές λαμπάδες από τη Δ΄ τάξη του σχολείου μας.pptx
 
2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της Ιταλίας
2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της Ιταλίας2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της Ιταλίας
2η Διεθνική Συνάντηση μαθητών και καθηγητών στο Σαλέρνο της Ιταλίας
 
Πασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptx
Πασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptxΠασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptx
Πασχαλινές Λαμπάδες από ΣΤ τάξη του σχολείου μας.pptx
 
Μια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑ
Μια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑΜια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑ
Μια νύχτα σε κατάστημα παιχνιδιώνΚΕΙΜΕΝΑ
 
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ 2008
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ  2008Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ  2008
Η ΑΔΙΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΑΣΕΠ ΕΚΠΑΙΔΕΥΤΙΚΩΝ 2008
 
Η Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docx
Η Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docxΗ Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docx
Η Κινέζικη Αστρολογία - Ημερολόγιο - Ζώδια.docx
 
ΚΛΙΜΑΤΙΚΗ ΑΛΛΑΓΗ ΚΑΙ ΠΟΛΙΤΙΚΕΣ ΤΗΣ Ε.Ε..pptx
ΚΛΙΜΑΤΙΚΗ ΑΛΛΑΓΗ ΚΑΙ ΠΟΛΙΤΙΚΕΣ ΤΗΣ Ε.Ε..pptxΚΛΙΜΑΤΙΚΗ ΑΛΛΑΓΗ ΚΑΙ ΠΟΛΙΤΙΚΕΣ ΤΗΣ Ε.Ε..pptx
ΚΛΙΜΑΤΙΚΗ ΑΛΛΑΓΗ ΚΑΙ ΠΟΛΙΤΙΚΕΣ ΤΗΣ Ε.Ε..pptx
 
ΕΝΔΟΣΧΟΛΙΚΕΣ_ΠΡΟΓΡΑΜΜΑ endosxolikes 2023-24
ΕΝΔΟΣΧΟΛΙΚΕΣ_ΠΡΟΓΡΑΜΜΑ endosxolikes 2023-24ΕΝΔΟΣΧΟΛΙΚΕΣ_ΠΡΟΓΡΑΜΜΑ endosxolikes 2023-24
ΕΝΔΟΣΧΟΛΙΚΕΣ_ΠΡΟΓΡΑΜΜΑ endosxolikes 2023-24
 
EKSETASTEA KAI DIDAKTEA YLH G TAKSHS GENIKOY LYKEIOY
EKSETASTEA KAI DIDAKTEA YLH G TAKSHS GENIKOY LYKEIOYEKSETASTEA KAI DIDAKTEA YLH G TAKSHS GENIKOY LYKEIOY
EKSETASTEA KAI DIDAKTEA YLH G TAKSHS GENIKOY LYKEIOY
 
Μια νύχτα σε κατάστημα παιχνιδιών.pdf
Μια νύχτα σε κατάστημα             παιχνιδιών.pdfΜια νύχτα σε κατάστημα             παιχνιδιών.pdf
Μια νύχτα σε κατάστημα παιχνιδιών.pdf
 
RODOPI CHALLENGE (ROC 50 MILES) 2024 ΤΕΧΝΙΚΗ ΕΝΗΜΕΡΩΣH
RODOPI CHALLENGE (ROC 50 MILES) 2024 ΤΕΧΝΙΚΗ ΕΝΗΜΕΡΩΣHRODOPI CHALLENGE (ROC 50 MILES) 2024 ΤΕΧΝΙΚΗ ΕΝΗΜΕΡΩΣH
RODOPI CHALLENGE (ROC 50 MILES) 2024 ΤΕΧΝΙΚΗ ΕΝΗΜΕΡΩΣH
 
Γιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξεις
Γιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξειςΓιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξεις
Γιορτή της μητέρας-Φύλλα εργασιών για όλες τις τάξεις
 
Επίσκεψη στο 11ο Γυμνάσιο Πάτρας
Επίσκεψη              στο 11ο Γυμνάσιο ΠάτραςΕπίσκεψη              στο 11ο Γυμνάσιο Πάτρας
Επίσκεψη στο 11ο Γυμνάσιο Πάτρας
 

ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3

  • 1. Αλγόριθµοι σε C Μάθηµα 3: Ταξινόµηση Πίνακα ∆ηµήτρης Ψούνης
  • 2. Περιεχόµενα Μαθήµατος Α. Θεωρία 1. Ταξινόµηση Πίνακα 1. Ορισµός του Προβλήµατος 2. Ταξινόµηση µε Εισαγωγή 1. Ιδέα του Αλγορίθµου 2. Κώδικας σε C 3. Παράδειγµα Εκτέλεσης 4. Άσκηση 3. Ταξινόµηση µε Επιλογή 1. Ιδέα του Αλγορίθµου 2. Κώδικας σε C 3. Παράδειγµα Εκτέλεσης 4. Άσκηση 4. Ταξινόµηση Φυσαλίδας 1. Ιδέα του Αλγορίθµου 2. Κώδικας σε C 3. Παράδειγµα Εκτέλεσης 4. Άσκηση 2∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 5. Ταξινόµηση µε Συγχώνευση 1. Ιδέα του Αλγορίθµου 2. Κώδικας σε C 3. Παράδειγµα Εκτέλεσης 4. Η merge 5. Άσκηση 6. Γρήγορη Ταξινόµηση 1. Ιδέα του Αλγορίθµου 2. Κώδικας σε C 3. Παράδειγµα Εκτέλεσης 4. Άσκηση Β. Ασκήσεις
  • 3. A. Θεωρία 1. Αναζήτηση Στοιχείου σε Πίνακα 1. Ορισµός του Προβλήµατος 3∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα Η «Ταξινόµηση Πίνακα» είναι το υπολογιστικό πρόβληµα στο οποίο: • Είσοδος: Ένας Πίνακας Στοιχείων • Έξοδος: Ο ίδιος Πίνακας µε τα στοιχεία του Ταξινοµηµένα Τα στοιχεία ταξινοµούνται: Σε αύξουσα σειρά (από το µικρότερο στο µεγαλύτερο) [Σηµείωση: Θα µελετήσουµε την ταξινόµηση σε αύξουσα σειρά στη θεωρία] Σε φθίνουσα σειρά (από το µεγαλύτερο στο µικρότερο) Θα µελετήσουµε 5 αλγόριθµους: Την Ταξινόµηση µε Επιλογή (Selection Sort) Την Ταξινόµηση µε Εισαγωγή (Insertion Sort) Την Ταξινόµηση Φυσαλίδας (Bubble Sort) Την Ταξινόµηση µε Συγχώνευση (Merge Sort) Την Γρήγορη Ταξινόµηση (Quick Sort)
  • 4. A. Θεωρία 2. Ταξινόµηση µε Επιλογή (Selection Sort) 1. Αλγοριθµική Ιδέα ∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 4 Ι∆ΕΑ της Selection Sort: • Έχοντας ταξινοµήσει τα στοιχεία 0..i-1 • επέλεξε το ελάχιστο ανάµεσα στα i έως N-1 και τοποθέτησε το στην θέση i 1 3 … 8 14 15 32 9 … 19 Ταξινοµηµένος Αταξινόµητος 1 swap 2 Υλοποίηση: • Στο βήµα i (0UN-1) • Βρίσκω το ελάχιστο στις θέσεις i..N-1 • Το κάνω swap µε το στοιχείο στη θέση i
  • 5. Ακολουθεί ο κώδικας σε C: Ο pinakas είναι ένας πίνακας Ν ακεραίων: A. Θεωρία 2. Ταξινόµηση µε Επιλογή (Selection Sort) 2. Κώδικας σε C 5∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα /* Taksinomisi Selection Sort */ for (i=0; i<N; i++) { pos=i; for (j=i+1; j<N; j++) { if (pinakas[j]<pinakas[pos]) pos=j; } swap(&pinakas[i], &pinakas[pos]); }
  • 6. A. Θεωρία 2. Ταξινόµηση µε Εισαγωγή (Insertion Sort) 3. Ένα Παράδειγµα Εκτέλεσης ∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 6 9 2 4 7 1 8 6 3i=0: 1 2 4 7 9 8 6 3i=1: 1 2 4 7 9 8 6 3i=2: 1 2 3 7 9 8 6 4i=3: 1 2 3 4 9 8 6 7i=4: 1 2 3 4 6 8 9 7i=5: 1 2 3 4 6 7 9 8i=6: 1 2 3 4 6 7 8 9i=7: Αρχικός Πίνακας: 9 2 4 7 1 8 6 3 Τελικός Πίνακας: 1 2 3 4 6 7 8 9
  • 7. A. Θεωρία 2. Ταξινόµηση µε Επιλογή (Selection Sort) 4. Άσκηση 7∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα Αφού µελετήσετε το πρόγραµµα selection_sort.c κατασκευάσετε συνάρτηση που παίρνει ως όρισµα έναν πίνακα ακεραίων (και τη διάστασή του) και τον ταξινοµεί µε χρήση της selection sort.
  • 8. A. Θεωρία 3. Ταξινόµηση µε Εισαγωγή (Insertion Sort) 1. Αλγοριθµική Ιδέα ∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 8 Ι∆ΕΑ της Insertion Sort: • Έχοντας ταξινοµήσει τα στοιχεία 0..i-1 • Τοποθετεί το στοιχείο i ταξινοµηµένα στις θέσεις 0..i (µε ανταλλαγές µέχρι να βρει µικρότερο) 1 3 … 7 14 15 9 32 … 4 Ταξινοµηµένος Αταξινόµητος swap Υλοποίηση: • Στο βήµα i (1UN-1) • Κάνω συνεχή swap του στοιχείου i αριστερά, µέχρι να βρω κάποιο µικρότερο στοιχείο swap
  • 9. Ακολουθεί ο κώδικας σε C: Ο pinakas είναι ένας πίνακας Ν ακεραίων: A. Θεωρία 3. Ταξινόµηση µε Εισαγωγή (Insertion Sort) 2. Κώδικας σε C 9∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα /* Taksinomisi me Eisagogi */ for (i=1; i<N; i++) { for (j=i; j>=1; j--) { if (pinakas[j]<pinakas[j-1]) swap(&pinakas[j], &pinakas[j-1]); else break; } }
  • 10. A. Θεωρία 3. Ταξινόµηση µε Εισαγωγή (Insertion Sort) 3. Ένα Παράδειγµα Εκτέλεσης ∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 10 9 2 4 7 1 8 6 3i=1: 2 9 4 7 1 8 6 3i=2: 2 4 9 7 1 8 6 3i=3: 2 4 7 9 1 8 6 3i=4: 1 2 4 7 9 8 6 3i=5: 1 2 4 7 8 9 6 3i=6: 1 2 4 6 7 8 9 3i=7: Αρχικός Πίνακας: 9 2 4 7 1 8 6 3 Τελικός Πίνακας: 1 2 3 4 6 7 8 9
  • 11. A. Θεωρία 3. Ταξινόµηση µε Εισαγωγή (Insertion Sort) 4. Άσκηση 11∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα Αφού µελετήσετε το πρόγραµµα insertion_sort.c κατασκευάσετε συνάρτηση που παίρνει ως όρισµα έναν πίνακα ακεραίων (και τη διάστασή του) και τον ταξινοµεί µε χρήση της insertion sort.
  • 12. A. Θεωρία 4. Ταξινόµηση Φυσαλίδας (Bubble Sort) 1. Αλγοριθµική Ιδέα ∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 12 Ι∆ΕΑ της Bubble Sort: • Έχοντας ταξινοµήσει τα στοιχεία 0..i-1 • Τα ελαφρύτερα (µικρότερα) στοιχεία αναδύονται µε µία σάρωση στις θέσεις Ν-1Ui 1 … 5 12 14 15 7 11 … 8 Ταξινοµηµένος Αταξινόµητος Υλοποίηση: • Στο βήµα i (0UN-1) • Για j=N-1 έως i+1: Κάνω swap του PIN[j] µε το PIN[j-1] εάν PIN[j]<PIN[j-1]
  • 13. Ακολουθεί ο κώδικας σε C: Ο pinakas είναι ένας πίνακας Ν ακεραίων: A. Θεωρία 4. Ταξινόµηση Φυσαλίδας(Bubble Sort) 2. Κώδικας σε C 13∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα /* Taksinomisi Fysalidas */ for (i=0; i<N; i++) { for (j=N-1; j>=i+1; j--) { if (pinakas[j]<pinakas[j-1]) swap(&pinakas[j], &pinakas[j-1]); } }
  • 14. A. Θεωρία 4. Ταξινόµηση Φυσαλίδας(Bubble Sort) 3. Ένα Παράδειγµα Εκτέλεσης ∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 14 9 2 4 7 1 8 6 3i=0: 1 9 2 4 7 3 8 6i=1: 1 2 9 3 4 7 6 8i=2: 1 2 3 9 4 6 7 8i=3: 1 2 3 4 9 6 7 8i=4: 1 2 3 4 6 9 7 8i=5: 1 2 3 4 6 7 9 8i=6: 1 2 3 4 6 7 8 9i=7: Αρχικός Πίνακας: 9 2 4 7 1 8 6 3 Τελικός Πίνακας: 1 2 3 4 6 7 8 9
  • 15. A. Θεωρία 4. Ταξινόµηση Φυσαλίδας(Bubble Sort) 4. Άσκηση 15∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα Αφού µελετήσετε το πρόγραµµα bubble_sort.c κατασκευάσετε συνάρτηση που παίρνει ως όρισµα έναν πίνακα ακεραίων (και τη διάστασή του) και τον ταξινοµεί µε χρήση της bubble sort.
  • 16. A. Θεωρία 5. Ταξινόµηση µε Συγχώνευση (Merge Sort) 1. Αλγοριθµική Ιδέα ∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 16 Ι∆ΕΑ της Merge Sort: 1. (Αναδροµικά) Ταξινόµησε το αριστερό µισό του πίνακα 2. (Αναδροµικά) Ταξινόµησε το δεξί µισό του πίνακα 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 0 1 2 3 4 5 6 7 1 4 6 7 9 11 18 20 8 9 10 11 12 13 14 15 2 3 5 10 13 14 19 22 3. Συγχώνευσε τα δύο κοµµάτια σε µία ταξινοµηµένη ακολουθία 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 9 0 1 2 3 4 5 6 7 1 4 6 7 9 11 18 20 8 9 10 11 12 13 14 15 2 3 5 10 13 14 19 22
  • 17. Το σώµα του αλγορίθµου φαίνεται στον ακόλουθο κώδικα (o πίνακας έχει δηλωθεί ως int pinakas[N] και οι µεταβλητές start,finish, middle είναι ακέραιες µεταβλητές): A. Θεωρία 5. Ταξινόµηση µε Συγχώνευση (Merge Sort) 1. Αλγοριθµική Ιδέα 17∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα void mergesort(int *pinakas, int start, int finish) { int i,middle; if (start==finish) /* 1 stoixeio */ return; else if (start==finish-1) /* 2 stoixeia */ { if (pinakas[start]>pinakas[finish]) swap(&pinakas[start], &pinakas[finish]); } else { middle=(start+finish)/2; mergesort(pinakas,start,middle); mergesort(pinakas,middle+1,finish); merge(pinakas,start,finish); } }
  • 18. 18∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα Πίνακας προς ταξινόµηση: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 18 7 4 11 9 20 6 1 22 19 14 5 2 9 10 13 A. Θεωρία 5. Ταξινόµηση µε Συγχώνευση (Merge Sort) 3. Ένα Παράδειγµα Εκτέλεσης
  • 19. 19∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα Αναδροµική Κλήση MergeSort(Α,0,15) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 0 1 2 3 4 5 6 7 18 7 4 11 9 20 6 1 8 9 10 11 12 13 14 15 22 19 14 5 2 3 10 13 A. Θεωρία 5. Ταξινόµηση µε Συγχώνευση (Merge Sort) 3. Ένα Παράδειγµα Εκτέλεσης
  • 20. 20∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα Αναδροµική Κλήση (A,0,7) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 0 1 2 3 4 5 6 7 18 7 4 11 9 20 6 1 8 9 10 11 12 13 14 15 22 19 14 5 2 3 10 13 0 1 2 3 18 7 4 11 4 5 6 7 9 20 6 1 A. Θεωρία 5. Ταξινόµηση µε Συγχώνευση (Merge Sort) 3. Ένα Παράδειγµα Εκτέλεσης
  • 21. 21∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα Αναδροµική Κλήση (A,0,3) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 0 1 2 3 4 5 6 7 18 7 4 11 9 20 6 1 8 9 10 11 12 13 14 15 22 19 14 5 2 3 10 13 0 1 2 3 18 7 4 11 4 5 6 7 9 20 6 1 0 1 18 7 3 4 4 11 A. Θεωρία 5. Ταξινόµηση µε Συγχώνευση (Merge Sort) 3. Ένα Παράδειγµα Εκτέλεσης
  • 22. 22∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα Αναδροµική Κλήση (A,0,1): Ταξινοµηση του υποπίνακα 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 0 1 2 3 4 5 6 7 18 7 4 11 9 20 6 1 8 9 10 11 12 13 14 15 22 19 14 5 2 3 10 13 0 1 2 3 18 7 4 11 4 5 6 7 9 20 6 1 0 1 7 18 2 3 4 11 A. Θεωρία 5. Ταξινόµηση µε Συγχώνευση (Merge Sort) 3. Ένα Παράδειγµα Εκτέλεσης
  • 23. 23∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα Αναδροµική Κλήση (A,2,3): Ταξινοµηση του υποπίνακα 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 0 1 2 3 4 5 6 7 18 7 4 11 9 20 6 1 8 9 10 11 12 13 14 15 22 19 14 5 2 3 10 13 0 1 2 3 18 7 4 11 4 5 6 7 9 20 6 1 0 1 7 18 2 3 4 11 A. Θεωρία 5. Ταξινόµηση µε Συγχώνευση (Merge Sort) 3. Ένα Παράδειγµα Εκτέλεσης
  • 24. 24∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα Αναδροµική Κλήση (A,0,3): Συγχώνευση των δύο υποπινάκων 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 0 1 2 3 4 5 6 7 18 7 4 11 9 20 6 1 8 9 10 11 12 13 14 15 22 19 14 5 2 3 10 13 0 1 2 3 4 7 11 18 4 5 6 7 9 20 6 1 0 1 7 18 2 3 4 11 A. Θεωρία 5. Ταξινόµηση µε Συγχώνευση (Merge Sort) 3. Ένα Παράδειγµα Εκτέλεσης
  • 25. 25∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα Αναδροµική Κλήση (A,4,7) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 0 1 2 3 4 5 6 7 18 7 4 11 9 20 6 1 8 9 10 11 12 13 14 15 22 19 14 5 2 3 10 13 0 1 2 3 4 7 11 18 4 5 6 7 9 20 6 1 0 1 7 18 2 3 4 11 4 5 9 20 6 7 6 1 A. Θεωρία 5. Ταξινόµηση µε Συγχώνευση (Merge Sort) 3. Ένα Παράδειγµα Εκτέλεσης
  • 26. 26∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα Αναδροµική Κλήση (A,4,5): Ταξινοµηση του υποπίνακα 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 0 1 2 3 4 5 6 7 18 7 4 11 9 20 6 1 8 9 10 11 12 13 14 15 22 19 14 5 2 3 10 13 0 1 2 3 4 7 11 18 4 5 6 7 9 20 6 1 0 1 7 18 2 3 4 11 4 5 9 20 6 7 6 1 A. Θεωρία 5. Ταξινόµηση µε Συγχώνευση (Merge Sort) 3. Ένα Παράδειγµα Εκτέλεσης
  • 27. 27∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα Αναδροµική Κλήση (A,6,7): Ταξινοµηση του υποπίνακα 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 0 1 2 3 4 5 6 7 18 7 4 11 9 20 6 1 8 9 10 11 12 13 14 15 22 19 14 5 2 3 10 13 0 1 2 3 4 7 11 18 4 5 6 7 9 20 6 1 0 1 7 18 2 3 4 11 4 5 9 20 6 7 1 6 A. Θεωρία 5. Ταξινόµηση µε Συγχώνευση (Merge Sort) 3. Ένα Παράδειγµα Εκτέλεσης
  • 28. 28∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα Αναδροµική Κλήση (A,4,7): Συγχώνευση των δύο υποπινάκων 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 0 1 2 3 4 5 6 7 18 7 4 11 9 20 6 1 8 9 10 11 12 13 14 15 22 19 14 5 2 3 10 13 0 1 2 3 4 7 11 18 4 5 6 7 1 6 9 20 0 1 7 18 2 3 4 11 4 5 9 20 6 7 1 6 A. Θεωρία 5. Ταξινόµηση µε Συγχώνευση (Merge Sort) 3. Ένα Παράδειγµα Εκτέλεσης
  • 29. 29∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα Αναδροµική Κλήση (A,0,7): Συγχώνευση των δύο υποπινάκων 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 0 1 2 3 4 5 6 7 1 4 6 7 9 11 18 20 8 9 10 11 12 13 14 15 22 19 14 5 2 3 10 13 0 1 2 3 4 7 11 18 4 5 6 7 1 6 9 20 0 1 7 18 2 3 4 11 4 5 9 20 6 7 1 6 A. Θεωρία 5. Ταξινόµηση µε Συγχώνευση (Merge Sort) 3. Ένα Παράδειγµα Εκτέλεσης
  • 30. 30∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα Αντίστοιχα θα γίνουν όλες οι αναδροµικές κλήσεις στο (8,15) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 0 1 2 3 4 5 6 7 1 4 6 7 9 11 18 20 8 9 10 11 12 13 14 15 2 3 5 10 13 14 19 22 0 1 2 3 4 7 11 18 4 5 6 7 1 6 9 20 0 1 7 18 2 3 4 11 4 5 9 20 6 7 1 6 8 9 10 11 5 14 19 22 12 13 14 15 2 3 10 13 8 9 19 22 10 11 5 14 12 13 2 3 14 15 10 13 A. Θεωρία 5. Ταξινόµηση µε Συγχώνευση (Merge Sort) 3. Ένα Παράδειγµα Εκτέλεσης
  • 31. 31∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα Αναδροµική Κλήση (A,0,15): Συγχώνευση των δύο υποπινάκων 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 9 10 11 13 14 18 19 20 22 0 1 2 3 4 5 6 7 1 4 6 7 9 11 18 20 8 9 10 11 12 13 14 15 2 3 5 10 13 14 19 22 0 1 2 3 4 7 11 18 4 5 6 7 1 6 9 20 0 1 7 18 2 3 4 11 4 5 9 20 6 7 1 6 8 9 10 11 5 14 19 22 12 13 14 15 2 3 10 13 8 9 19 22 10 11 5 14 12 13 2 3 14 15 10 13 A. Θεωρία 5. Ταξινόµηση µε Συγχώνευση (Merge Sort) 3. Ένα Παράδειγµα Εκτέλεσης
  • 32. 32∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα Η διαδικασία merge δουλεύει ως εξής: Σαρώνει τους δύο πίνακες ταυτόχρονα από αριστερά προς τα δεξιά. Συγκρίνει τα δύο τρέχοντα στοιχεία των πινάκων Επιλέγει το µικρότερο και το βάζει στην επόµενη θέση της ταξινοµηµένης ακολουθίας Όταν εξαντληθούν τα στοιχεία του ένος από τους δύο πίνακες, βάζουµε όσα στοιχεία απέµειναν από τον άλλο πίνακα στο τέλος της ταξινοµηµένης ακολουθίας. Στο παράδειγµα βλέπουµε µερικά βήµατα και τους µετρητές που χρησιµοποιούνται. A. Θεωρία 5. Ταξινόµηση µε Συγχώνευση (Merge Sort) 4. Η διαδικασία merge
  • 33. 33∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα
  • 34. 34∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα Μία υλοποίηση της merge είναι η ακόλουθη: void merge(int *pinakas, int start, int finish) { int C[SIZE]; int i,j,k; int middle, n, m; middle=(start+finish)/2; /* 1os pinakas PIN[start..middle]=PIN[i..n] */ i=start; n=middle; /* 2os pinakas PIN[middle+1..finish]=PIN[j...m] */ j=middle+1; m=finish; /* C: sigxwneumenos pinakas */ k=0; A. Θεωρία 5. Ταξινόµηση µε Συγχώνευση (Merge Sort) 4. Η διαδικασία merge (συνεχίζεται…)
  • 35. 35∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα Μία υλοποίηση της merge είναι η ακόλουθη: (συνέχεια…) /* 1. Sigxwneusi twn dio pinakwn */ while (i<=n && j<=m) { if (pinakas[i]<pinakas[j]) { C[k]=pinakas[i]; k++; i++; } else { C[k]=pinakas[j]; k++; j++; } } A. Θεωρία 5. Ταξινόµηση µε Συγχώνευση (Merge Sort) 4. Η διαδικασία merge (συνεχίζεται…)
  • 36. 36∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα Μία υλοποίηση της merge είναι η ακόλουθη: (συνέχεια…) /* 2. Antigrafi tou pinaka pou perissevei sto telos tou sigxwneumenou pinaka */ if (i==n+1) /* Eksantlithike o 1os pinakas */ { while (j<=m) { C[k]=pinakas[j]; k++; j++; } } else /* Eksantlithike o 2os pinakas */ { while (i<=n) { C[k]=pinakas[i]; k++; i++; } } A. Θεωρία 5. Ταξινόµηση µε Συγχώνευση (Merge Sort) 4. Η διαδικασία merge (συνεχίζεται…)
  • 37. 37∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα Μία υλοποίηση της merge είναι η ακόλουθη: (συνέχεια…) /* 3. Antigrafi tou C ston pinakas */ k=0; i=start; while (i<=finish) { pinakas[i]=C[k]; i++; k++; } } A. Θεωρία 5. Ταξινόµηση µε Συγχώνευση (Merge Sort) 4. Η διαδικασία merge (συνεχίζεται…)
  • 38. 38∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα Άσκηση: Μελετήστε το πρόγραµµα mergesort.c και “καθαρίστε” το από τις εκτυπώσεις ώστε η mergesort να είναι µια αυτόνοµη συνάρτηση. A. Θεωρία 5. Ταξινόµηση µε Συγχώνευση (Merge Sort) 5. Άσκηση
  • 39. A. Θεωρία 6. Γρήγορη Ταξινόµηση (Quick Sort) 1. Ιδέα του Αλγορίθµου 39∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα Ι∆ΕΑ της QuickSort: 1. Επιλέγει ένα Στοιχείο του Πίνακα (Οδηγό Στοιχείο – Εδώ το στοιχείο που είναι στην πρώτη θέση) 2. Χωρίζει τον πίνακα σε τρία µέρη: • Τα στοιχεία που είναι µικρότερα του οδηγού στοιχείου • Το οδηγό στοιχείο • Τα στοιχεία που είναι µεγαλύτερα ή ίσα του οδηγού στοιχείου 0 1 2 3 4 5 6 7 8 9 18 7 4 11 9 20 6 1 22 19 6 7 4 11 9 1 18 20 22 19 7 8 9 20 22 19 3. Επαναλαµβάνει αναδροµικά στους δύο υποπίνακες που προέκυψαν. 6 18 0 1 2 3 4 5 6 7 4 11 9 1
  • 40. A. Θεωρία 6. Γρήγορη Ταξινόµηση (Quick Sort) 2. Κώδικας σε C 40∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα Η υλοποίηση σε γλώσσα C είναι η ακόλουθη: Όπου partition είναι µια συνάρτηση που πραγµατοποιεί τον χωρισµό του πίνακα σε µικρότερα και µεγαλύτερα (ή ίσα) στοιχεία σε σχέση µε το οδηγό στοιχείο. Επιστρέφει τη θέση του τελευταίου µικρότερου στοιχείου από το οδηγό στοιχείο. Συνεπώς οι δύο πίνακες στους οποίους γίνεται η αναδροµή είναι: start..pos pos+1..finish Στην επόµενη διαφάνεια βλέπουµε ένα παράδειγµα εκτέλεσης. void quicksort(int *pinakas, int start, int finish) { int pos; if (start<finish) { pos=partition(pinakas,start,finish); quicksort(pinakas,start,pos-1); quicksort(pinakas,pos+1,finish); } }
  • 41. Γρήγορη Ταξινόµηση QuickSort (3.Παράδειγµα Εκτέλεσης) 41∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 18 7 4 11 9 20 6 1 22 19 14 5 8 3 10 13 8 7 4 11 9 13 6 1 10 3 14 5 18 19 22 20 0 1 2 3 4 5 6 7 8 9 10 11 8 7 4 11 9 13 6 1 10 3 14 5 6 7 4 5 3 1 8 13 10 9 14 11 13 14 15 19 22 20 19 22 20 14 15 22 20 20 22 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 3 4 5 6 7 8 9 10 11 13 14 18 19 20 22 0 1 2 3 4 5 6 7 4 5 3 1 3 1 4 5 6 7 7 8 9 10 11 13 10 9 14 11 11 10 9 13 14 5 7 7 0 1 2 3 3 1 4 5 1 3 4 5 0 1 1 2 3 4 5 4 5 3 5 5 7 8 9 11 10 9 9 10 11 11 14 14 7 8 9 10 9 10 8 10 10 14 20 20
  • 42. 42∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα Η διαµέριση των στοιχείων στα µικρότερα και µεγαλύτερα ή ίσα µπορεί να γίνει µε πολλούς τρόπους: Π.χ. ένας απλός τρόπος είναι να χρησιµοποιήσουµε έναν βοηθητικό πίνακα που να βάζουµε στα αριστερά τα µικρότερα στοιχεία και στα δεξιά τα µεγαλύτερα στοιχεία του οδηγού. Ωστόσο εµείς θα µελετήσουµε έναν τρόπο διαµέρισης, που είναι µια µικρή παραλλαγή του σχήµατος Hoare: Σαρώνουµε τον πίνακα από αριστερά ψάχνοντας για ένα στοιχείο που είναι µεγαλύτερο του οδηγού Σαρώνουµε τον πίνακα από δεξιά ψάχνοντας για ένα στοιχείο που είναι µικρότερο (ή ίσο) του οδηγού Ανταλλάσσουµε τα δύο στοιχεία και επαναλαµβάνουµε µέχρι να γίνει ο χωρισµός των στοιχείων. Μελετούµε το παράδειγµα της επόµενης διαφάνειας A. Θεωρία 6. Γρήγορη Ταξινόµηση (Quick Sort) 4. Η διαδικασία partition
  • 43. Παράδειγµα εκτέλεσης της partition: Τερµατισµός: Ανταλλαγή του οδηγού στοιχείου µε το «δεξιό» δείκτη A. Θεωρία 6. Γρήγορη Ταξινόµηση (Quick Sort) 4. Η διαδικασία partition 43∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 0 1 2 3 4 5 6 7 8 9 9 8 4 11 2 20 6 1 22 19 i=3 j=8 0 1 2 3 4 5 6 7 8 9 9 8 4 11 2 20 6 1 22 19 8 4 1 11 22 19 0 1 2 3 4 5 6 7 8 9 9 8 4 1 2 20 6 11 22 19 9 8 4 1 11 22 19i=5 j=6 0 1 2 3 4 5 6 7 8 9 9 8 4 1 2 6 20 11 22 19 0 1 2 3 4 5 6 7 8 9 9 8 4 1 2 20 6 11 22 19 9 8 4 1 2 6 20 11 22 19 i=7j=6 0 1 2 3 4 5 6 7 8 9 9 8 4 1 2 6 20 11 22 19 0 1 2 3 4 5 6 7 8 9 6 8 4 1 2 9 20 11 22 19
  • 44. A. Θεωρία 6. Γρήγορη Ταξινόµηση (Quick Sort) 4. Η διαδικασία partition 44∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα Η υλοποίηση της partition µε το σχήµα του Hoare σε ψευδογλώσσα είναι η ακόλουθη: int partition(int *pinakas, int start, int finish) { int pivot, i, j; pivot=pinakas[start]; i=start+1; j=finish; while(1) { while(pinakas[i]<=pivot && i<=finish) i++; while(pinakas[j]>pivot && j>=start) j--; if (i<j) swap(&pinakas[i],&pinakas[j]); else { swap(&pinakas[start],&pinakas[j]); return j; } } }
  • 45. A. Θεωρία 6. Γρήγορη Ταξινόµηση (Quick Sort) 5. Άσκηση 45∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα Άσκηση: Μελετήστε το πρόγραµµα quicksort.c και “καθαρίστε” το από τις εκτυπώσεις ώστε η quicksort να είναι µια αυτόνοµη συνάρτηση.
  • 46. Β. Ασκήσεις Εφαρµογή 1: Ταξινόµηση Πραγµατικών Αριθµών ∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 46 Μετατρέψτε την bubble sort και την quick sort έτσι ώστε να πραγµατοποιούν ταξινόµηση σε τύπο δεδοµένων double.
  • 47. Β. Ασκήσεις Εφαρµογή 2: Ταξινόµηση σε Φθίνουσα Σειρά ∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 47 Μετατρέψτε την insertion sort και την merge sort έτσι ώστε να πραγµατοποιούν ταξινόµηση σε φθίνουσα σειρά.
  • 48. Β. Ασκήσεις Εφαρµογή 3: Quick Sort που χρησιµοποιεί Insertion Sort ∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 48 Προτείνεται η εξής υβριδική µέθοδος ταξινόµησης: Εκτελούµε τον αλγόριθµο Quick Sort Αν ωστόσο ο πίνακας έχει το πολύ 5 στοιχεία, τότε αυτός ταξινοµείται µε χρήση της insertion sort Κατασκευάστε την νέα µέθοδο ταξινόµησης µε όνοµα hybrid sort και αναδείξτε τη χρήση της µε µία κατάλληλη συνάρτηση main.
  • 49. Β. Ασκήσεις Εφαρµογή 4.1: Εκτέλεση όλων των αλγορίθµων ∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 49 ∆ηµιουργήστε ένα πρόγραµµα το οποίο: ∆ηµιουργείται ένας πίνακας 100 ακεραίων αριθµών. Οι τιµές του πίνακα να είναι ακέραιοι στο εύρος [0U1000] Καλούνται διαδοχικά οι 5 αλγόριθµοι ταξινόµησης που µελετήσαµε και προβάλλεται το αποτέλεσµα της ταξινόµησης του πίνακα.
  • 50. Β. Ασκήσεις Εφαρµογή 4.2: Πλήθος Συγκρίσεων των Αλγορίθµων Αναζήτησης ∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 50 Τροποποιήστε τους 3 µη αναδροµικούς αλγορίθµους, ώστε να µετράνε το πλήθος των συγκρίσεων που πραγµατοποιούνται. Μετά την εκτέλεση του αντίστοιχου αλγορίθµου να τυπώνεται το πλήθος των συγκρίσεων που πραγµατοποιήθηκαν. Σηµείωση: Όταν λέµε συγκρίσεις εννοούµε τις συγκρίσεις που γίνονται µεταξύ στοιχείων του πίνακα.
  • 51. Β. Ασκήσεις Εφαρµογή 4.3: Πλήθος Συγκρίσεων των Αλγορίθµων Αναζήτησης ∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 51 Τροποποιήστε τους 2 αναδροµικούς αλγορίθµους, ώστε να µετράνε το πλήθος των συγκρίσεων που πραγµατοποιούνται. Μετά την εκτέλεση του αντίστοιχου αλγορίθµου να τυπώνεται το πλήθος των συγκρίσεων που πραγµατοποιήθηκαν. Σηµείωση: Όταν λέµε συγκρίσεις εννοούµε τις συγκρίσεις που γίνονται µεταξύ στοιχείων του πίνακα.
  • 52. Β. Ασκήσεις Εφαρµογή 4.4: Πειραµατική Μελέτη των Αλγορίθµων Αναζήτησης ∆ηµήτρης Ψούνης, Αλγόριθµοι σε C, Μάθηµα 3: Ταξινόµηση Πίνακα 52 Πειραµατιστείτε δοκιµάζοντας διαφορετικές διαστάσεις στον πίνακα. Ποιος αλγόριθµος δείχνει να επικρατεί των άλλων;