Skip to content

Commit b8544b4

Browse files
authored
Algoritmo de ordenação Insertion Sort em C
Algoritmo de ordenação Insertion Sort em C
1 parent ef96e25 commit b8544b4

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

src/c/InsertionSort.c

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
/*
2+
Algoritmo de ordenação Insertion Sort em C
3+
Vinicios Barbosa da Silva - 2023
4+
https://github.com/ViniciosB
5+
*/
6+
7+
#include <stdio.h> // Necessário para usar input e output
8+
#include <stdlib.h> // Necessário para usar a função rand()
9+
#include <time.h> // Necessário para inicializar a semente de números aleatórios
10+
11+
// Definimos a função insertion_sort que recebe como argumento o vetor a ser ordenado e seu tamanho n
12+
void insertion_sort(int arr[], int n) {
13+
int i, j, key;
14+
// Percorremos todos os elementos do vetor a partir do segundo elemento
15+
for (i = 1; i < n; i++) {
16+
// Armazenamos o valor do elemento atual em key
17+
key = arr[i];
18+
// Inicializamos o índice j como o elemento anterior ao elemento atual
19+
j = i - 1;
20+
// Enquanto j é maior ou igual a 0 e o elemento atual é menor do que o elemento na posição j do vetor,
21+
// movemos o elemento na posição j uma posição para a direita e decrementamos j
22+
while (j >= 0 && arr[j] > key) {
23+
arr[j + 1] = arr[j];
24+
j = j - 1;
25+
}
26+
// Quando o loop interno termina, colocamos o elemento atual em sua posição correta
27+
arr[j + 1] = key;
28+
}
29+
}
30+
31+
// Função principal
32+
int main() {
33+
int i, n, arr[100];
34+
srand(time(NULL)); // Inicializa a semente de números aleatórios
35+
printf("Entre com o numero de elementos no vetor: ");
36+
scanf("%d", &n);
37+
printf("Vetor de entrada:\n");
38+
for (i = 0; i < n; i++) {
39+
arr[i] = rand() % 100; // Gera um valor aleatório entre 0 e 99
40+
printf("%d ", arr[i]); // Imprime o valor gerado
41+
}
42+
printf("\n");
43+
insertion_sort(arr, n);
44+
printf("Vetor ordenado em ordem crescente:\n");
45+
for (i = 0; i < n; i++) {
46+
printf("%d ", arr[i]);
47+
}
48+
printf("\n");
49+
return 0;
50+
}

0 commit comments

Comments
 (0)