Está en la página 1de 9

INVESTIGACIÓN

Método de Ordenación Burbuja (Bubble Sort) para lenguaje en c


El método de orden ación Burbuja (Bubble Sort) es un algoritmo de ordenamiento
ascendente que se utiliza para ordenar una lista de datos. Aquí les presentaremos
un proceso estructurado para implementar este algoritmo en el lenguaje de c:

1. Declaración de Variables: Primero, necesitaremos crear dos variables


contadoras de ciclos, una variable temporal y dos ciclos. Los contadores de
ciclos serán útiles para manejar los ciclos. La variable temporal será
utilizada para almacenar el valor mayor entre los dos elementos
comparados en cada ciclo.

2. Inicialización de Variables: Una vez las variables creadas, las iniciaremos


con valores adecuados. Por ejemplo, puedes inicializar la variable menor
con -1 y la mayor con 1.

3. Inicio del Ciclo Principal: Luego, entramos en un ciclo infinito mientras las
variables mayores y menores estén disponibles. Comenzamos comparando
el primer elemento de la lista con el último. Si el valor mayor es el de la
variable menor, entonces intercambiaremos los dos elementos. Repetimos
este proceso con el siguiente elemento en la lista y el anterior. Si las
comparaciones continúan siendo favorables, entonces intercambiamos el
elemento mayor con el elemento menor. Recordemos que los ciclos pueden
comparar cualquier número de elementos, no solo dos.

4. Salida del Ciclo Principal: Finalmente, saltamos el ciclo cuando ya no haya


elementos en la lista que puedan ser intercambiados.
Es importante recordar que este algoritmo tiene un costo en términos de tiempo y
espacio, por lo que se recomienda utilizarlo en situaciones en las que el
ordenamiento de los datos es importante pero el tiempo de ejecución es limitado.

A continuación, un ejemplo de tal programa:


1. #include <stdio.h>: Esta es una directiva de preprocesador que incluye el archivo
de cabecera de la biblioteca estándar de entrada/salida en C. Esta biblioteca
contiene funciones para entrada y salida de datos.

2. void bubbleSort(int arr[], int n): Esta es la declaración de la función bubbleSort, que
implementa el algoritmo de ordenación de burbuja. Toma como argumentos un
array de enteros arr[] y su tamaño n.

3. Dentro de bubbleSort, hay dos bucles for anidados. El bucle externo recorre todo el
array. El bucle interno compara cada elemento del array con el siguiente y los
intercambia si están en el orden incorrecto.
4. void printArray(int arr[], int size): Esta es la declaración de la función printArray, que
imprime los elementos de un array. Toma como argumentos un array de enteros
arr[] y su tamaño size.

5. Dentro de printArray, hay un bucle for que recorre todo el array e imprime cada
elemento.

6. int main(): Esta es la función principal donde comienza la ejecución del programa.

7. Dentro de main, se declara e inicializa un array de enteros arr[]. Luego, se calcula


el tamaño del array y se llama a la función bubbleSort para ordenar el array.
Finalmente, se llama a la función printArray para imprimir el array ordenado.

Método de Ordenación Inserción(insertion Short) en lenguaje c


Esta ordenación es, junto con la de burbuja, una de las más conocidas,
pero a diferencia de la primera, es de las más eficientes en O(n2). Su
funcionamiento es el siguiente: Si sólo tenemos un dato, entonces el
arreglo ya está ordenado. Agregando un segundo dato, podemos ordenar
el arreglo acomodando este dato antes o después del primero, según
corresponda.
Para implementar el método de Orden ación Inserc ión (Insertion Short) en el lenguaje de
programación C, seguimos estos pasos:

1. Inicialización: Comenzamos con la inicialización de una estructura de datos de


tipo arreglo de enteros. Puede ser una lista, un array o cualquier otro tipo de
estructura de datos que pueda ser ordenado.

2. Entrada: Aceptamos como entrada un entero positivo. El primer elemento de la


estructura de datos será '0'. El siguiente elemento será '1', y así sucesivamente .

3. Salida: Para cada conjunto de datos encontrados en la entrada, usamos la función


max para obtener el valor máximo de la estructura de datos. Luego, use la función
min para obtener el valor mínimo. En cada caso, imprimimos Minimum exchange
operations .

4. Operaciones: Implementamos las operaciones de intercambio de dos números


adyacentes para cambiar los elementos en la estructura de datos. Este método es
eficiente para ordenar datos ya ordenados previamente .

5. Iter ación: Para cada elemento de la estructura de datos, implementamos una


iteración que evalúe la condición if(i < n - 1) y efectue un intercambio si es
verdadera. Realizamos esto para cada elemento del arreglo hasta que i se
encuentre con 0 .
6. Salida final: Finalmente, imprimimos la cantidad mínima de transposiciones
requeridas para el ordenamiento. Utilizamos una línea para cada caso .

EJEMPLO:

1. #include <stdio.h>: Esta es una directiva de preprocesador que incluye el archivo


de cabecera de la biblioteca estándar de entrada/salida en C. Esta biblioteca
contiene funciones para entrada y salida de datos.

2. void insertionSort(int arr[], int n): Esta es la declaración de la función insertionSort,


que implementa el algoritmo de ordenación por inserción. Toma como argumentos
un array de enteros arr[] y su tamaño n.

3. Dentro de insertionSort, hay un bucle for que recorre todo el array desde el
segundo elemento hasta el último. Para cada elemento, se guarda en la variable
key y se compara con los elementos anteriores.

4. Si un elemento anterior es mayor que key, se mueve una posición hacia adelante.
Este proceso se repite hasta que se encuentra un elemento anterior que no es
mayor que key, o hasta que se han revisado todos los elementos anteriores.
5. void printArray(int arr[], int n): Esta es la declaración de la función printArray, que
imprime los elementos de un array. Toma como argumentos un array de enteros
arr[] y su tamaño n.

6. Dentro de printArray, hay un bucle for que recorre todo el array e imprime cada
elemento.

7. int main(): Esta es la función principal donde comienza la ejecución del programa.

8. Dentro de main, se declara e inicializa un array de enteros arr[]. Luego, se calcula


el tamaño del array y se llama a la función insertionSort para ordenar el array.
Finalmente, se llama a la función printArray para imprimir el array ordenado.

Método de Ordenación selección(selection Sort) en lenguaje c


El algoritmo de ordenamiento por selección, también conocido como Selection Sort en
inglés, es un método de ordenación que requiere O (n^2) operaciones para ordenar una
lista de n elementos. Este algoritmo se basa en la comparación de elementos y reemplaza
el elemento más pequeño en la posición 0, luego busca el siguiente elemento más
pequeño y lo coloca en la posición 1, y así sucesivamente hasta que todos los elementos
estén ordenados.

Para implementar el algoritmo de Selection Sort en C, puedes seguir estos pasos:

1. Declaración de variables : Necesitaremos crear variables para representar el


vector de elementos y el índice de posición.

2. Inicialización de variables : Iniciaremos con las variables de los valores de los


elementos del vector.

3. Comparación de elementos : Implementamos la comparación de elementos y


colocamos el elemento más pequeño en la posición 0. Luego, buscamos el
siguiente elemento más pequeño y lo colocamos en la posición 1, y así
sucesivamente hasta que todos los elementos estén ordenados.

4. Iteración : Continúanos iterando hasta que todos los elementos del vector estén
en orden.

5. Salida de resultados : Finalizamos el proceso imprimiendo los elementos del


vector en orden.
1. #include <stdio.h>: Esta es una directiva de preprocesador que incluye el archivo
de cabecera de la biblioteca estándar de entrada/salida en C. Esta biblioteca
contiene funciones para entrada y salida de datos.

2. void swap(int *xp, int *yp): Esta es la declaración de la función swap, que
intercambia los valores de dos variables. Toma como argumentos dos punteros a
enteros xp y yp.

3. Dentro de swap, se guarda el valor de xp en una variable temporal temp, luego se


asigna el valor de yp a xp, y finalmente se asigna el valor de temp a yp. Esto
resulta en que los valores de xp y yp se intercambien.

4. void selectionSort(int arr[], int n): Esta es la declaración de la función selectionSort,


que implementa el algoritmo de ordenación por selección. Toma como argumentos
un array de enteros arr[] y su tamaño n.

5. Dentro de selectionSort, hay un bucle for que recorre todo el array desde el primer
elemento hasta el penúltimo. Para cada elemento, se asume que es el mínimo.
6. Luego, hay otro bucle for que recorre los elementos restantes del array. Si se
encuentra un elemento que es menor que el mínimo actual, se actualiza el mínimo.

7. Después de que todos los elementos restantes han sido revisados, se intercambia
el mínimo con el primer elemento no ordenado.

8. void printArray(int arr[], int size): Esta es la declaración de la función printArray, que
imprime los elementos de un array. Toma como argumentos un array de enteros
arr[] y su tamaño size.

9. Dentro de printArray, hay un bucle for que recorre todo el array e imprime cada
elemento.

10. int main(): Esta es la función principal donde comienza la ejecución del programa.

11. Dentro de main, se declara e inicializa un array de enteros arr[]. Luego, se calcula
el tamaño del array y se llama a la función selectionSort para ordenar el array.
Finalmente, se llama a la función printArray para imprimir el array ordenado.

Métodos de búsqueda Búsqueda lineal


La búsqueda lineal en C se realiza a través de dos métodos principales: búsqueda simple y
búsqueda binaria.

Método de Búsqueda Simple: Este método consiste en comparar cada elemento del arreglo con
el valor buscado. Se utiliza cuando el arreglo está ordenado, es decir, cuando puede ser
evaluado en promedio el tiempo de ejecución. Para implementarlo, se comparan los elementos
uno a uno desde el principio hasta encontrar el elemento buscado12.

Para una implementación simple, se puede usar la función strcmp de C para comparar dos
elementos. Se pueden escribir las condiciones de comparación en una condicional if3. Sin
embargo, este método es menos eficiente que la búsqueda binaria, especialmente para arreglos
ordenados1.

Método de Búsqueda Binaria: Este método es mucho más eficiente que la búsqueda lineal y se
utiliza para arreglos ordenados. En lugar de comparar cada elemento con el valor buscado, lo
que se hace es comparar el valor buscado con la mitad de los elementos del arreglo1. Esto
reduce el espacio de búsqueda y hace que el tiempo de ejecución sea proporcional al logar de
la mitad del arreglo4.

Para implementar la búsqueda binaria, se puede usar el método bsearch de C. Este método
requiere el valor buscado y una función de comparación, que puede ser greater o less than14.

En resumen, el uso de la búsqueda lineal es adecuado cuando la cantidad de datos es grande y


no se puede ordenar el arreglo. En cambio, la búsqueda binaria es más eficiente y se utiliza
cuando el arreglo está ordenado y se puede comparar el valor buscado con la mitad de los
elementos del arreglo14.

Para una implementación más completa, considera la siguiente estructura de código:


Búsqueda Lineal

En este ejemplo, el método búsqueda Lineal recibe un arreglo arr, el tamaño del arreglo tam y el
elemento que se desea buscar elemento. Luego, se recorre el arreglo utilizando un bucle for y
se compara cada elemento con el elemento buscado. Si se encuentra el elemento, se retorna el
índice donde se encuentra en el arreglo. Si no se encuentra, se retorna -1.

En el main, se crea un arreglo de ejemplo arr, se calcula el tamaño del arreglo dividiendo el
tamaño total del arreglo entre el tamaño de un elemento. Luego, se llama a la función búsqueda
lineal pasando el arreglo, el tamaño y el elemento a buscar. Dependiendo del resultado de la
búsqueda, se imprime un mensaje indicando si se encontró o no el elemento y en qué índice se
encuentra.
Búsqueda Binaria

En este ejemplo, el método búsqueda Binaria recibe un arreglo arr, el tamaño del arreglo tam y
el elemento que se desea buscar elemento. Primero se inicializan las variables izquierda y
derecha que representan el rango de búsqueda dentro del arreglo. Luego se utiliza un bucle
while que se ejecuta mientras que izquierda sea menor o igual que derecha. En cada iteración
se calcula el medio del rango de búsqueda y se compara el valor del elemento en el índice
medio con el elemento buscado. Si son iguales, se retorna el índice medio. Si el elemento
buscado es mayor que el elemento en el índice medio, se actualiza el valor de izquierda para
buscar en la mitad derecha del rango de búsqueda. Si el elemento buscado es menor, se
actualiza el valor de derecha para buscar en la mitad izquierda del rango de búsqueda.

En el main, se crea un arreglo de ejemplo arr, se calcula el tamaño del arreglo dividiendo el
tamaño total del arreglo entre el tamaño de un elemento. Luego, se llama a la función búsqueda
Binaria pasando el arreglo, el tamaño y el elemento a buscar. Dependiendo del resultado de la
búsqueda, se imprime un mensaje indicando si se encontró o no el elemento y en qué índice se
encuentra.

También podría gustarte