Você está na página 1de 3

Ordenao por troca (Mtodo Bolha) Dado um vetor de n posies (vetor[0], vetor[1], ...

, vetor[n-2], vetor[n-1]), dois a dois os elementos so comparados, iniciando-se pelas posies (n-1) e (n-2) at se atingir a posio 0. Se vetor[i-1] for maior que vetor[i], os elementos so trocados de posio. Em seguida, faz-se novamente a comparao at a posio 1 e assim sucessivamente. O processo repetido n-1 vezes. #include <stdio.h> void main() { int vetor[100]; int i, j, tam, n=100, buffer; printf("\nQual o numero de elementos\n"); scanf("%d", &tam); while(tam>n) { printf("Numero de elementos excedido. Entre com novo valor.\n"); scanf("%d", &tam); } for(i=0; i<tam; i++) { printf("Entre com o %doelemento\n", i+1); scanf("%d", &vetor[i]); } for(j=0; j<tam-1; j++) for(i=tam-1; i>j; i--) { if(vetor[i]<vetor[i-1]) { buffer= vetor [i]; vetor [i]= vetor [i-1]; vetor [i-1]=buffer; } } for(i=0; i<tam; i++) printf("%d\n", vetor [i]); getch(); }

Ordenao por seleo Dado um vetor de n posies (vetor[0], vetor[1], ..., vetor[n-2], vetor[n-1]), procura-se o elemento de menor valor e troca-o pelo elemento em vetor[0]. Em seguida, procura-se o elemento de menor valor tal que i>0 e troca-o pelo elemento em vetor[1]. Repete-se o sucessivamente at que no reste mais elementos a serem trocados. #include <stdio.h> void main() { int vetor[100]; int i, j, tam, n=100, pos, min; printf("\nQual o numero de elementos\n"); scanf("%d", &tam); while(tam>n) { printf("Numero de elementos excedido. Entre com novo valor.\n"); scanf("%d", &tam); } for(i=0; i<tam; i++) { printf("Entre com o %doelemento\n", i+1); scanf("%d", &vetor[i]); } for(j=0; j<tam; j++) { pos = j; min = vetor [j]; for(i=j+1; i<tam; i++) if(vetor[i]<min) { min= vetor [i]; pos = i; } vetor [pos] = vetor [j]; vetor [j] = min; } for(i=0; i<tam; i++) printf("%d\n", vetor [i]); getch(); }

Ordenao por insero Os dois primeiros elementos so ordenados e em seguida os demais so inseridos nas posies correspondentes. #include <stdio.h> void main() { int item[8]={9,8,7,6,1,3,5,4}; int i, count=8, a, buffer; if(item[1]<item[0]) { buffer=item[1]; item[1]=item[0]; item[0]=buffer; } for(i=2; i<count; i++) for(a=i; a>0 && item[a]<item[a-1]; a--) { if(item[a]<item[a-1]) { buffer=item[a]; item[a]=item[a-1]; item[a-1]=buffer; } } for(i=0; i<count; i++) printf("%d\n", item[i]); getch(); }

Você também pode gostar