Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
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
Άσκηση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
ΘεωρίαΤαξινόμηση bubblesort
Για την ταξινόμηση πίνακα Ν στοιχείων γίνεται σύγκριση των στοιχείων ανά 2. Ανταλλαγή τιμών αν το 1οστοιχείο είναι μεγαλύτερο απ’ το 2ο. Το μεγαλύτερο στοιχείο του πίνακα βρίσκεται στην τελευταία θέση. Τα βήματα επαναλαμβάνονται N-1 φορές.
Ταξινόμηση ευθείας επιλογής Εντοπισμός εκάστοτε μεγίστου ή ελάχιστου Ανταλλαγή μεγίστου με το στοιχείο στην πρώτη μη ταξινομημένη θέση του πίνακα Το μεγαλύτερο στοιχείο του πίνακα βρίσκεται στην πρώτη θέση Τα βήματα επαναλαμβάνονται N-1 φορές
Ταξινόμηση ευθείας εισαγωγήςΗ μέθοδος είναι πολύ δημοφιλής στους χαρτοπαίχτες και έχει ως εξής:
Κάθε στοιχείο, ξεκινώντας από το δεύτερο, τοποθετείται στη σωστή του θέση μετακινώντας, αν χρειαστεί, τα στοιχεία δεξιά του κατά μία θέση.
Εργαστήριο
Γράψτε τον κώδικα τον τριών ταξινομήσεων και ελέγξτε τα αποτελέσματα. 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;}