Insertion Sort

mail@pastecode.io avatar
unknown
c_cpp
3 years ago
1.7 kB
0
Indexable
#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;
}