Al trabajar con la información más beneficiosa.Los métodos de almacenamiento son estructuras y matrices. Este último puede contener cualquiera del mismo tipo de datos que sea conveniente usar en el programa. A menudo se usan en tiendas en línea y en el desarrollo de juegos. Por lo tanto, los datos contenidos en ellos se ordenan e intercambian repetidamente, y se les realizan operaciones lógicas o matemáticas. Una forma de limpiar una matriz es a través de la clasificación de burbujas. Esta publicación examinará su código C y su lógica de permutación.
Технических сложностей для программиста La clasificación de burbujas de una matriz unidimensional no representa, aunque rara vez se utiliza debido a su baja eficiencia. A menudo se considera en la etapa de entrenamiento como el más simple. Sin embargo, está lejos de ser el más efectivo. Su algoritmo consiste en comparar secuencialmente dígitos y reescribir celdas mutuamente, si se cumple la condición.
En la primera iteración, dos se comparan gradualmentenúmeros adyacentes Si la izquierda es más grande, se sobrescribe en lugares con la derecha. Las condiciones menos 8 y 0 no satisfacen. Por lo tanto, no cambian de lugar. Cero y 5 tampoco son adecuados. 5 y 3 son adecuados. Sin embargo, en tal iteración, el marco de lectura no cae entre los cinco primeros, sino que se desplaza hacia la derecha, ya que 5 se compararon previamente con cero. Esto significa que el siguiente par se invierte: 3 y 9. Además, se invita al lector a ver todos los reemplazos por su cuenta sin comentarios de ningún autor y estudiar el algoritmo de clasificación de burbujas.
В результате всех итераций массив постепенно ordenado, y esto sucede principalmente de esta manera: los números positivos grandes se desplazan rápidamente hacia la derecha, mientras que los números más pequeños y negativos se reordenan lentamente hacia la izquierda. Parece que las burbujas de gas en un líquido flotan rápidamente. Debido a esta analogía, el algoritmo se llamó clasificación de burbujas.
Идеальный алгоритм сортировки должен быть Lo más rápido posible. Al mismo tiempo, debería ocupar una pequeña cantidad de recursos de procesador y memoria. Y un proceso como la clasificación de burbujas de una matriz no puede ser el más eficiente y rentable. Por lo tanto, no encontró una amplia aplicación. Si hay menos problemas con la memoria en este momento, debe preocuparse por los recursos del procesador. Dado que los arreglos digitales pueden ser no solo grandes, sino enormes, el consumo de recursos informáticos será impredecible.
Si la clasificación de burbujas es, en principio, rápidafrente al restablecimiento del orden en una matriz relativamente pequeña, entonces en una grande puede haber fallas debido al uso excesivo de los recursos. Esto significa que se violará la propiedad de universalidad inherente al algoritmo. Además, la clasificación por una burbuja tiene una complejidad de N cuadrado y está muy lejos del logaritmo de la complejidad de N. Además, el riesgo de una falla al procesar una gran matriz aumenta las posibilidades de pérdida de datos debido a la sobrescritura de celdas. Ordenar por inserciones o el algoritmo de Shell será mucho más rentable en este sentido.
Indicado abajo en la aplicación de gráficosEl código de computadora para el lenguaje C permite la clasificación de burbujas. Se representa como una función separada del tipo vacío. No devuelve ningún valor, pero al usar punteros intercambia los elementos según las condiciones de clasificación. En este caso, el código resuelve el problema de la clasificación de burbujas de una matriz de enteros en orden ascendente.
Para realizar esta función, el usuario debecree una matriz que deba completarse con los valores necesarios. Esto se puede hacer manualmente configurando la dimensión y el número de elementos al inicio del programa. Luego puede llenar la matriz con valores constantes. La segunda opción es crear un programa universal declarando una gran matriz unidimensional de 100 elementos.
Al establecer una variable entera y asignarlavalor leído desde el teclado, puede limitar el número de celdas que se llenarán. También puede implementar la función de ingreso de elementos de matriz por parte del usuario desde el teclado usando la función scanf ("% d", & value). En este ejemplo, "% d" es una cadena modificadora que le dice al compilador que se obtendrá un valor entero después del escaneo. El valor variable almacenará el valor, que es el tamaño de una matriz entera unidimensional.
Para usar el algoritmo de clasificación, debepasar el nombre de la matriz y su tamaño a la función. En la situación presentada en la aplicación gráfica, la llamada a la función de clasificación se verá así: BubleSort (dataArray, sizeDataArray). Por supuesto, al final de la línea después de la función, debe poner un punto y coma en lugar de un punto, como lo requieren las reglas de la sintaxis del programa. Entonces, dataArray es el nombre de la matriz para ordenar, y sizeDataArray es su tamaño.
Pasar estos parámetros a la función BubleSort ()conducirá al hecho de que, en lugar de usar sizeArray, como se muestra en la figura, en un programa real, las operaciones se realizarán con sizeDataArray. Esto también significa que el dataArray entero se usará en la función BubleSort (). Del mismo modo, la llamada a las funciones printArrayFunction () y ArrayIntegerInputFunction (). El primero es responsable de imprimir, es decir, de enviar elementos a la consola. Y el segundo es necesario para llenarlo con elementos ingresados por el usuario desde el teclado.
Tal estilo de programación cuando está aisladoLas operaciones se llevan a cabo en forma de funciones, aumenta significativamente la legibilidad del código y acelera su desarrollo. En dicho programa, la matriz se completa por separado del teclado, su salida para imprimir y la burbuja se clasifican. Este último puede usarse para organizar datos o como una función secundaria diseñada para encontrar el mínimo y el máximo de la matriz.
En la ordenación por inserción, se suponecomparando alternativamente cada elemento y construyendo una cadena de elementos ya ordenados según la condición de los elementos. Como resultado, el resultado de cada comparación posterior es una búsqueda de una celda en la que se puede colocar un nuevo valor. Pero cada uno de ellos se inserta en la parte ya ordenada de la matriz.
Tal procesamiento es más rápido y tiene menos complejidad computacional. El código C se presenta en una aplicación gráfica.
También se representa como una función en la quecomo argumentos, se pasa el nombre de la matriz que debe ordenarse y el tamaño de la matriz. Aquí puede ver cuán lenta es la clasificación de burbujas. Incrustaciones, un trabajo similar es mucho más rápido y tiene un código compacto.