domesdedomenwn.files.wordpress.com  · Web view2013. 3. 12. · Τι κάνει ο κάθε...

6
Μάθημα 2 5/3/2013 Άσκηση1 Μπείτε στην ιστοσελίδα: http://pliroforikiatschool.blogspot.gr/2011/08/videos- bubblesort.html Επιλέξτε και δείτε ένα video. Απαντήστε στις παρακάτω ερωτήσεις για τον αλγόριθμο φυσαλίδας. 1. Με ποια διαδικασία κάνει την ταξινόμηση; 2. Να ταξινομηθούν οι ακέραιοι 20, 37, 6, 18, 45 ενός πίνακα. Πώς διαμορφώνεται ο πίνακας σε κάθε βήμα της ταξινόμησης φυσαλίδας (ξεκινώντας από το στοιχείο 45); 20 37 6 18 45

Transcript of domesdedomenwn.files.wordpress.com  · Web view2013. 3. 12. · Τι κάνει ο κάθε...

Page 1: domesdedomenwn.files.wordpress.com  · Web view2013. 3. 12. · Τι κάνει ο κάθε αλγόριθμος; Πως λειτουργεί; Παρακολουθήστε και

2 Μάθημα 5/3/2013Άσκηση1

Μπείτε στην ιστοσελίδα: http://pliroforikiatschool.blogspot.gr/2011/08/videos-bubblesort.html

Επιλέξτε και δείτε ένα video.

Απαντήστε στις παρακάτω ερωτήσεις για τον αλγόριθμο φυσαλίδας.

1. Με ποια διαδικασία κάνει την ταξινόμηση;

2. Να ταξινομηθούν οι ακέραιοι 20, 37, 6, 18, 45 ενός πίνακα. Πώς διαμορφώνεται ο πίνακας σε κάθε βήμα της ταξινόμησης φυσαλίδας (ξεκινώντας από το στοιχείο 45);

20 37 6 18 45

3. Να ταξινομηθούν οι ακέραιοι 20, 37, 6, 18, 45 ενός πίνακα. Πώς διαμορφώνεται ο πίνακας σε κάθε βήμα της ταξινόμησης φυσαλίδας (ξεκινώντας από το στοιχείο 20);

ii jj

44 00

1122

33

33 0011

2222 00

11

11 00

Page 2: domesdedomenwn.files.wordpress.com  · Web view2013. 3. 12. · Τι κάνει ο κάθε αλγόριθμος; Πως λειτουργεί; Παρακολουθήστε και

Άσκηση2

Μπείτε στην ιστοσελίδα http://math.hws.edu/eck/jsdemo/sortlab.html ήκατεβάστε το αρχείο java xsortLab από την ιστοσελίδα http :// pliroforikiatschool . blogspot . gr /2010/12/ blog - post _26. html

Δείτε τους αλγορίθμους ταξινόμησης bubblesort, ευθείας επιλογής, ευθείας εισαγωγής. Τι κάνει ο κάθε αλγόριθμος; Πως λειτουργεί;

Παρακολουθήστε και καταγράψτε τις συγκρίσεις και αντιμεταθέσεις που κάνει κάθε αλγόριθμος.

Αλγόριθμοι Συγκρίσεις ΑντιμεταθέσειςΤαξινόμηση ευθείας επιλογήςΤαξινόμηση ευθείας εισαγωγήςΤαξινόμηση bubblesort

Άσκηση3

Ταξινομήστε τον παρακάτω πίνακα με τον αλγόριθμος ευθείας επιλογής.

Ταξινομήστε τον παρακάτω πίνακα με τον αλγόριθμος ευθείας εισαγωγής.

42 20 17 13 28 14 23 15

Page 3: domesdedomenwn.files.wordpress.com  · Web view2013. 3. 12. · Τι κάνει ο κάθε αλγόριθμος; Πως λειτουργεί; Παρακολουθήστε και

ΘεωρίαΤαξινόμηση bubblesort

Για την ταξινόμηση πίνακα Ν στοιχείων γίνεται σύγκριση των στοιχείων ανά 2. Ανταλλαγή τιμών αν το 1οστοιχείο είναι μεγαλύτερο απ’ το 2ο. Το μεγαλύτερο στοιχείο του πίνακα βρίσκεται στην τελευταία θέση. Τα βήματα επαναλαμβάνονται N-1 φορές.

Ταξινόμηση ευθείας επιλογής Εντοπισμός εκάστοτε μεγίστου ή ελάχιστου Ανταλλαγή μεγίστου με το στοιχείο στην πρώτη μη ταξινομημένη θέση του πίνακα Το μεγαλύτερο στοιχείο του πίνακα βρίσκεται στην πρώτη θέση Τα βήματα επαναλαμβάνονται N-1 φορές

Ταξινόμηση ευθείας εισαγωγήςΗ μέθοδος είναι πολύ δημοφιλής στους χαρτοπαίχτες και έχει ως εξής:

Κάθε στοιχείο, ξεκινώντας από το δεύτερο, τοποθετείται στη σωστή του θέση μετακινώντας, αν χρειαστεί, τα στοιχεία δεξιά του κατά μία θέση.

Page 4: domesdedomenwn.files.wordpress.com  · Web view2013. 3. 12. · Τι κάνει ο κάθε αλγόριθμος; Πως λειτουργεί; Παρακολουθήστε και

Εργαστήριο

Γράψτε τον κώδικα τον τριών ταξινομήσεων και ελέγξτε τα αποτελέσματα. C

Ποιος κώδικας αντιστοιχεί σε κάθε ταξινόμηση; Αλλάξτε τους κώδικες ώστε να κάνουν αύξουσα/ φθίνουσα ταξινόμηση.

#include <stdio.h>#include <stdlib.h>main(){ int m[5] = {23,20,12,52,10}, i, j, temp;for (i = 4; i>0; i--) // Επανάληψη βημάτων 4 φορές{for (j = 0; j<i; j++) //i συγκρίσεις σε κάθε φάσηif (m[j]>m[j+1]) //Ανταλλαγή στοιχείων m[j], m[j+1]{temp = m[j+1];m[j+1] = m[j];m[j] = temp;}}//Εκτύπωση στοιχείων ταξινομημένου πίνακαfor (i = 0; i<5; i++)printf("%d\n",m[i]);system("pause");return 0;}

#include <stdio.h>#include <stdlib.h>main(){ int m[5] = {23,20,12,52,122}, i, j, meg, temp;for (i = 0; i<4; i++){ // Επανάληψη βημάτων 4 φορέςmeg = i;for (j = i; j<5; j++) //Εύρεση μεγίστουif (m[meg]<m[j])meg = j;//Ανταλλαγή τιμών μεγίστου με το 1ομη ταξινομημένοtemp = m[i];m[i] = m[meg];m[meg] = temp;}//Εκτύπωση στοιχείων ταξινομημένου πίνακαfor (i = 0; i<5; i++)printf("%d\n",m[i]);system("pause");return 0;}

#include <stdio.h>#include <stdlib.h>

int main(){int pin[5] = {23,5,12,2,1}; int min, i, j, k, tmp;

for(i=0;i<5;i++){ min=i; for(j=i+1;j<5;++j){ if(pin[j]<pin[min]){ min=j; }//if }//for1 tmp=pin[i]; pin[i]=pin[min]; pin[min]=tmp; }//for2 printf("%s", "After sorting is: "); for(i=0;i<5;i++) printf(" %d",pin[i]); system("pause");return 0;}