C/Visual C - Ayuda en el método de inserción directa

 
Vista:

Ayuda en el método de inserción directa

Publicado por maikel (1 intervención) el 05/03/2003 11:19:30
Hola a todos. Me gustaría que alguien me aclarara un pequeña duda: la inserción directa en c. Poseo el pseudocódigo, pero no me lo reconoce el compilador. si alguien pudiera aclararme esta duda, le estaría muy agradecido. Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

mplementación del algoritmo de inserción directa

Publicado por Alejandro (1153 intervenciones) el 08/05/2025 22:27:10
Para implementar el algoritmo de inserción directa (o "insertion sort") en C, puedes seguir el siguiente código de ejemplo. Este código toma un arreglo de enteros y lo ordena utilizando el método de inserción directa:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <stdio.h>
 
void insertionSort(int arr[], int n) {
    int i, key, j;
    for (i = 1; i < n; i++) {
        key = arr[i];
        j = i - 1;
 
        // Mueve los elementos de arr[0..i-1], que son mayores que key,
        // a una posición adelante de su posición actual
        while (j >= 0 && arr[j] > key) {
            arr[j + 1] = arr[j];
            j = j - 1;
        }
        arr[j + 1] = key;
    }
}
 
void printArray(int arr[], int n) {
    int i;
    for (i = 0; i < n; i++)
        printf("%d ", arr[i]);
    printf("\n");
}
 
int main() {
    int arr[] = {5, 3, 4, 2, 1};
    int n = sizeof(arr) / sizeof(arr[0]);
 
    printf("Arreglo original: \n");
    printArray(arr, n);
 
    insertionSort(arr, n);
 
    printf("Arreglo ordenado: \n");
    printArray(arr, n);
    return 0;
}

Explicación del código:

1. Función `insertionSort`: Esta función implementa el algoritmo de inserción directa. Toma un arreglo y su tamaño como parámetros. Utiliza un bucle para recorrer el arreglo y, para cada elemento, lo inserta en la posición correcta en la parte ya ordenada del arreglo.

2. Función `printArray`: Esta función se utiliza para imprimir el arreglo antes y después de la ordenación.

3. Función `main`: Aquí se define un arreglo de ejemplo, se imprime el arreglo original, se llama a la función de ordenación y luego se imprime el arreglo ordenado.

Asegúrate de compilar el código en un entorno que soporte C, como Visual Studio o cualquier otro compilador de C. Si tienes el pseudocódigo, puedes compararlo con este código para entender cómo se traduce a C. ¡Espero que esto te ayude, Maikel!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar