Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
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;
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.