Métodos de ordenação em c
Prof. Paulo Henrique Maciel, M.Sc.
(Testados no Dev-C++ v. 4.9.9.2)
//Bubble Sort (Método Bolha)
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
main()
{
int A[5]; int i, j, x;
system("cls"); puts("Insira 5 numeros"); for(i=0; i<=4; i++){ printf("Num %i: ",i); scanf("%i",&A[i]); } for (i= (5-1); i >= 1; i--) { for (j= 0; j < i ;j++) { if (A[j] > A[j+1]) { x = A[j]; A[j] = A[j+1]; A[j+1] = x; } } }
puts("Numeros ordenados.\n"); for(i=0; i<=4; i++) { printf("%i ",A[i]); } puts("\n"); printf("Numero maior e'..:%i\nNumero menor e'..:%i\n",A[4],A[0]); getch();
}
// Método QuickSort
#include<stdio.h>
#include <stdlib.h>
#include <conio.h> void Quick(int vetor[10], int inicio, int fim); main(){ int vetor[10] = {7, 9, 4, 3, 6, 1, 18, 2, 10, 5};
int i; printf("Vetor desordenado:\n"); for(i = 0; i < 10; i++){ printf("%d ", vetor[ i ]); } printf("\n");
Quick(vetor, 0, 9);
printf("Vetor ordenado:\n"); for(i = 0; i < 10; i++){ printf("%d ", vetor[ i ]); } printf("\n"); getch();
}
void Quick(int vetor[10], int inicio, int fim){
int pivo, aux, i, j, meio;
i = inicio; j = fim;
meio = (int) ((i + j) / 2); pivo = vetor[meio];
do{ while (vetor[ i ] < pivo) i = i + 1; while (vetor[j] > pivo) j = j - 1; if(i <= j){ aux = vetor[ i ]; vetor[ i ] = vetor[j]; vetor[j] = aux; i = i + 1; j = j - 1; } }while(j > i);
if(inicio < j) Quick(vetor, inicio, j); if(i < fim) Quick(vetor, i, fim);
}
//Método Insertion Sort
#include <stdio.h>
#include