#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
// Estas definições indicam o que deverá ser incluso dependendo do sistema operacional em que o programa for executado.
// Caso o sistema for Windows
#if defined _WIN32 || defined WIN32
#define WINDOWS
#include <windows.h>
#define LIMPAR_TELA system("cls");
// Caso o sistema for Linux
#elif defined __unix__
#define LINUX
#include <unistd.h>
#define LIMPAR_TELA system("clear");
#endif
int main()
{
setlocale(LC_ALL, "Portuguese");
int tamanho, temp, A, B, C, D, E;
printf("*--------------------------*\n");
printf("| ALGORITMO DE ORDENAÇÃO |\n");
printf("*--------------------------*\n");
printf("|||||| INSERTION SORT ||||||\n");
printf("*--------------------------*\n");
#if defined WINDOWS
#define PAUSAR_TELA Sleep(2000);
#elif defined LINUX
#define PAUSAR_TELA usleep(2000 * 1000);
#endif
PAUSAR_TELA
printf("\nSelecione o tamanho do seu vetor: ");
scanf("%d", &tamanho);
printf("Agora insira os números: ");
int vetor[tamanho];
for (A = 0; A < tamanho; A++)
{
scanf("%d", &vetor[A]);
LIMPAR_TELA
for (B = 0; B <= A; B++)
{
printf("%d ", vetor[B]);
}
B = 0;
}
printf("\n");
for (C = 1; C < tamanho; C++)
{
for (D = C; D > 0; D--)
{
if (vetor[D-1] > vetor[D])
{
temp = vetor[D-1];
vetor[D-1] = vetor[D];
vetor[D] = temp;
}
}
}
// Por último, será exibido todas as posições do vetor, mas agora de forma ordenada.
for (E = 0; E < tamanho; E++) { printf("Posição[%d] = %d\n", E, vetor[E]); }
return 0;
}