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

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

Ταξινόμηση - Sorting.

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


Παρουσίαση με θέμα: "Ταξινόμηση - Sorting."— Μεταγράφημα παρουσίασης:

1 Ταξινόμηση - Sorting

2 Ταξινόμηση Φυσαλίδας – Bubble Sort
Με την μέθόδο της ταξινόμησης φυσαλίδας μπορούμε να ταξινομήσουμε τα στοιχεία ενός μονοδιάστατου πίνακα σε αύξουσα ή σε φθίνουσα σειρά. Η μέθοδος βασίζεται σε αλλεπάλληλους ελέγχους και μετακινήσεις ώστε να μπουν τα στοιχεία στην σειρά.

3 Παράδειγμα (αύξουσα σειρά)
4 5 10 3 1 3 5 10 4 1 1 5 10 4 3 1 4 10 5 3 1 3 10 5 4 1 3 10 5 4 1 3 5 10 4 1 3 4 10 5 1 3 4 5 10

4 Πρόγραμμα σε C for(i=0;i<N-1;i++) for(k=i+1;k<N;k++) If (A[i]>A[k]){ temp=A[i]; A[i]=A[k]; A[k]=temp; }

5 Φθίνουσα Σειρά Στην φθίνουσα σειρά ο αλγόριθμος παραμένει ο ίδιος. Το μόνο που αλλάζει είναι ο έλεγχος. Από Α[i] >A[k] γίνεται: Α[i]<A[k]

6 Παράδειγμα 1 Να δημιουργήσετε το πρόγραμμα που διαβάζει 10 ακέραιους αριθμούς από το αρχείο par1.in και τους τυπώνει σε αύξουσα σειρά στο αρχείο par1.out

7 Παράδειγμα 1 #include<stdio.h> #define N 10 using namespace std; int main(){ int a[N], i , j, temp; FILE *fin,*fout; fin = fopen( "par1.in", "r" ); fout = fopen( "par1.out", "w" ); for(i=0;i<N;i++) fscanf(fin,"%d",&a[i]); for( i=0; i<N-1; i++ ) for( j=i+1; j<N; j++ ) if( a[i] > a[j] ) { temp = a[i]; a[i] = a[j]; a[j] = temp; } for( i=0; i<N; i++ ) fprintf( fout, "%d\n", a[i] ); fclose(fin); fclose(fout); return 0;

8 Παράδειγμα 2 Μέσα στο αρχείο par2.in υπάρχει ένας ακέραιος αριθμός Ν (0<Ν<=100) ακολουθούμενος από 2 στήλες. Στην πρώτη στήλη είναι ένας ακέραιος αριθμός που αντιστοιχεί στην ηλικία και στη δεύτερη το όνομα (μέχρι 30 χαρακτήρες). Να τυπώσετε στο αρχείο par2.out τα ονόματα ξεκινώντας από τον γηραιότερο.

9 Παράδειγμα 2 for(i=0;i<N-1;i++) for(j=i+1;j<N;j++) if(age[i]<age[j]){ t1=age[i]; age[i]=age[j]; age[j]=t1; strcpy(t2,name[i]); strcpy(name[i],name[j]); strcpy(name[j],t2); } for(i=0;i<N;i++) fprintf(fout,"%s\n",name[i]); fclose(fin); fclose(fout); return 0; #include<stdio.h> #include<string.h> using namespace std; int main(){ int age[100],i,j,t1,N; char name[100][30],t2[30]; FILE *fin,*fout; fin=fopen("par2.in","r"); fout=fopen("par2.out","w"); fscanf(fin,"%d",&N); for(i=0;i<N;i++){ fscanf(fin,"%d",&age[i]); fscanf(fin,"%s",name[i]); }

10 Παράδειγμα 3 Να δημιουργήσετε το πρόγραμμα που διαβάζει από το αρχείο par3.in έναν αριθμό Ν(0<Ν<=100) ακολουθούμενο από Ν ονόματα και τα τυπώνει με αλφαβητική σειρά στο αρχείο par3.out

11 Παράδειγμα 3 #include<stdio.h> #include<string.h> using namespace std; int main(){ int i,j,N; char name[100][30],t1[30]; FILE *fin,*fout; fin=fopen("par3.in","r"); fout=fopen("par3.out","w"); fscanf(fin,"%d",&N); for(i=0;i<N;i++) fscanf(fin,"%s",name[i]); for(i=0;i<N-1;i++) for(j=i+1;j<N;j++) if(strcmp(name[i],name[j])>0){ strcpy(t1,name[i]); strcpy(name[i],name[j]); strcpy(name[j],t1); } for(i=0;i<N;i++) fprintf(fout,"%s\n",name[i]); fclose(fin); fclose(fout); return 0;


Κατέβασμα ppt "Ταξινόμηση - Sorting."

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


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