// IED-001 (Prof. Dr. Silvio do Lago Pereira) // ----------------------------------------------------------------------------- // Exemplo 2 // ----------------------------------------------------------------------------- void troca(int v[], int i, int j) { int x = v[i]; v[i] = v[j]; v[j] = x; } void bsort(int v[], int n) { for(int i=1; i<=n; i++) for(int j=0; jv[j+1] ) troca(v,j,j+1); } // ----------------------------------------------------------------------------- // Exercicio 1 // ----------------------------------------------------------------------------- #include ... int main(void) { int v[10] = {83,31,91,46,27,20,96,25,96,80}; bsort(v,10); exibe(v,10); return 0; } // ----------------------------------------------------------------------------- // Exemplo 3 // ----------------------------------------------------------------------------- void intercala(int v[], int p, int m, int u) { int *w = malloc((u-p+1)*sizeof(int)); int i=p, j=m+1, k=0; while( i<=m && j<=u ) w[k++] = (v[i] ... int main(void) { int v[8] = {31,48,60,80,19,27,52,75}; intercala(v,0,3,7); exibe(v,8); int w[9] = {10,82,27,38,41,53,60,75,99}; intercala(w,0,1,9); exibe(w,9); return 0; } // ----------------------------------------------------------------------------- // Exemplo 5 // ----------------------------------------------------------------------------- void ms(int v[], int p, int u) { if( p==u ) return; int m = (p+u)/2; ms(v,p,m); ms(v,m+1,u); intercala(v,p,m,u); } void msort(int v[], int n) { ms(v,0,n-1); } // ----------------------------------------------------------------------------- // Exercicio 5 // ----------------------------------------------------------------------------- #include ... int main(void) { int v[10] = {83,31,91,46,27,20,96,25,96,80}; msort(v,10); exibe(v,10); return 0; } // ----------------------------------------------------------------------------- // Exercicio 6 // ----------------------------------------------------------------------------- void preenche(int v[], int n, int s) { srand(s); // definida em stdlib.h for(int i=0; i ... int main(void) { int v[8] = {66,80,31,48,27,75,19,52}; printf("27: %d\n", lsearch(27,v,8)); printf("51: %d\n", lsearch(51,v,8)); return 0; } // ----------------------------------------------------------------------------- // Exemplo 7 // ----------------------------------------------------------------------------- int bsearch(int x, int v[], int n) { int p = 0; int u = n-1; while( p<=u ) { int m = (p+u)/2; if( x==v[m] ) return 1; if( x ... int main(void) { int v[8] = {19,27,31,48,52,66,75,80}; printf("27: %d\n", bsearch(27,v,8)); printf("51: %d\n", bsearch(51,v,8)); return 0; }