Módulo de funciones con clasificación de burbujas. Clasificación de burbujas


Todo el mundo sabe muy bien que, dentro de la clase de tipos de cambio, el método más rápido es el llamado clasificación rápida. Se escriben disertaciones al respecto, se le dedican muchos artículos sobre Habré y se inventan complejos algoritmos híbridos basados ​​en él. Pero hoy no hablaremos de clasificación rápida, y sobre otro método de intercambio: el viejo y bueno. clasificación de burbujas y sus mejoras, modificaciones, mutaciones y variaciones.

Los beneficios prácticos de estos métodos no son tan grandes y muchos usuarios de habra pasaron por todo esto en primer grado. Por tanto, el artículo está dirigido a quienes acaban de interesarse por la teoría de los algoritmos y están dando sus primeros pasos en esta dirección.

imagen: burbujas

Hoy hablaremos de lo más sencillo. clasificaciones de intercambio.

Si alguien está interesado, diré que hay otras clases. clasificación de selección, clasificación por inserción, fusionar ordenar, clasificación de distribución, tipos híbridos Y tipos paralelos. Por cierto, también hay clasificaciones esotéricas. Se trata de varios pseudoalgoritmos cómicos y de otro tipo falsos, fundamentalmente irrealizables, sobre los cuales escribiré un par de artículos en el centro "Humor de TI".

Pero esto no tiene nada que ver con la conferencia de hoy; ahora sólo nos interesan las clasificaciones de intercambio simples. También hay muchas clasificaciones de intercambio (conozco más de una docena), por lo que consideraremos las llamadas clasificación de burbujas y algunos otros estrechamente relacionados con él.

Le advertiré de antemano que casi todos los métodos anteriores son muy lentos y no habrá un análisis en profundidad de su complejidad temporal. Algunos son más rápidos, otros más lentos, pero en términos generales podemos decir que en promedio oh(norte 2). Además, no veo ninguna razón para saturar el artículo con implementaciones en ningún lenguaje de programación. Los interesados ​​pueden encontrar fácilmente ejemplos de código en Rosetta, Wikipedia o en otros lugares.

Pero volvamos a clasificar los intercambios. El orden se produce como resultado de la iteración secuencial repetida de la matriz y la comparación de pares de elementos entre sí. Si los elementos que se comparan no están ordenados entre sí, los intercambiamos. La única pregunta es cómo omitir exactamente la matriz y sobre qué base seleccionar pares para comparar.

No comencemos con la clasificación de burbujas estándar, sino con un algoritmo llamado...

tipo estúpido

Ordenar es realmente estúpido. Miramos la matriz de izquierda a derecha y comparamos los vecinos a lo largo del camino. Si encontramos un par de elementos mutuamente desordenados, los intercambiamos y volvemos al punto de partida, es decir, al principio. Revisamos y verificamos la matriz nuevamente, si nuevamente encontramos un par de elementos vecinos "incorrectos", cambiamos de lugar y comenzamos de nuevo. Seguimos hasta ir ordenando el array poco a poco.

“Cualquier tonto puede hacer algo así”, dirás, y tendrás toda la razón. Por eso la clasificación se llama "estúpida". En esta conferencia mejoraremos y modificaremos constantemente este método. Ahora tiene dificultades temporales. oh(norte 3), habiendo hecho una corrección, ya la llevaremos a oh(norte 2), luego lo aceleraremos un poco más, luego un poco más, y al final obtendremos oh(norte registro norte) – ¡y no será “Clasificación rápida” en absoluto!

Hagamos una única mejora a la estúpida clasificación. Habiendo descubierto dos elementos adyacentes sin clasificar durante el pasaje y los intercambiamos, no retrocederemos al principio de la matriz, sino que continuaremos recorriéndola tranquilamente hasta el final.

En este caso, no tenemos ante nosotros nada más que el conocido...

clasificación de burbujas

O clasificación por intercambios simples. Un clásico inmortal del género. El principio de funcionamiento es simple: recorremos la matriz de principio a fin, intercambiando simultáneamente elementos vecinos sin clasificar. Como resultado de la primera pasada, el elemento máximo "flotará" hasta el último lugar. Ahora recorremos nuevamente la parte no ordenada de la matriz (desde el primer elemento hasta el penúltimo) y cambiamos los vecinos no clasificados a lo largo del camino. El segundo elemento más grande ocupará el penúltimo lugar. Continuando con el mismo espíritu, atravesaremos la parte cada vez menor y sin clasificar de la matriz, empujando los máximos encontrados hasta el final.

Si no sólo llevamos los máximos hasta el final, sino que también empujamos los mínimos hasta el principio, entonces lo lograremos...

Clasificación por agitador

ella es la misma ordenar aleatoriamente, ella es la misma clasificación de cócteles. El proceso comienza como en una “burbuja”: exprimimos el máximo hasta el fondo. Después de esto, giramos 180 0 y vamos en la dirección opuesta, mientras volvemos al principio no al máximo, sino al mínimo. Habiendo ordenado el primer y último elemento de la matriz, volvemos a dar un salto mortal. Después de ir y venir varias veces, finalmente finalizamos el proceso y terminamos en el medio de la lista.

La clasificación por agitador funciona un poco más rápido que la clasificación por burbujas, ya que tanto los máximos como los mínimos migran alternativamente a través de la matriz en las direcciones requeridas. Las mejoras, como dicen, son obvias.

Como puede ver, si aborda el proceso de enumeración de manera creativa, el desplazamiento de elementos pesados ​​(ligeros) hacia los extremos de la matriz es más rápido. Por lo tanto, los artesanos propusieron otra “hoja de ruta” no estándar para sortear la lista.

Clasificación par-impar

Esta vez no correremos de un lado a otro a lo largo de la matriz, sino que volveremos nuevamente a la idea de un recorrido sistemático de izquierda a derecha, pero solo daremos un paso más amplio. En la primera pasada, los elementos con clave impar se comparan con sus vecinos en lugares pares (el 1.º se compara con el 2.º, luego el 3.º con el 4.º, el 5.º con el 6.º, y así sucesivamente). Luego, por el contrario, comparamos/cambiamos elementos “pares” por “impares”. Luego nuevamente “par-impar”, luego nuevamente “par-impar”. El proceso se detiene cuando, después de dos pasos consecutivos por el conjunto (“par-impar” y “par-impar”), no se ha producido ni un solo intercambio. Entonces lo solucionaron.

En una “burbuja” normal, durante cada pasada exprimimos sistemáticamente el máximo actual hasta el final de la matriz. Si salta a lo largo de índices pares e impares, todos los elementos más o menos grandes de la matriz se empujan simultáneamente hacia la derecha una posición en una sola ejecución. Funciona más rápido de esta manera.

Veamos el último redecorado* Para Sortuvannya bulbashka** - Ordenar por peine***. Este método se organiza muy rápidamente, oh(norte 2) es su peor dificultad. En promedio a lo largo del tiempo tenemos oh(norte registro norte), y lo mejor, ni lo vas a creer, oh(norte). Es decir, un competidor muy digno de todo tipo de "tipos rápidos" y esto, claro está, sin el uso de la recursividad. Sin embargo, prometí que hoy no profundizaremos en las velocidades de crucero, así que dejaré de hablar y pasaré directamente al algoritmo.


Todo es culpa de las tortugas.

Un poco de historia. En 1980, Włodzimierz Dobosiewicz explicó por qué la clasificación de burbujas y sus derivados funcionan tan lentamente. Todo es por las tortugas.. Las “tortugas” son pequeños elementos que se ubican al final de la lista. Como habrás notado, los tipos de burbujas se centran en los "conejos" (que no deben confundirse con los "conejos" de Babushkin): elementos de gran valor al principio de la lista. Se mueven muy rápidamente hacia la meta. Pero los lentos reptiles se arrastran hasta el principio a regañadientes. Puedes personalizar la tortilla usando peines.

imagen: tortuga culpable

Clasificación de peine

En "burbuja", "agitador" y "par-impar", cuando se itera a través de una matriz, se comparan los elementos vecinos. La idea principal del "peine" es tomar inicialmente una distancia suficientemente grande entre los elementos que se comparan y, a medida que se ordena la matriz, reducir esta distancia al mínimo. De esta manera, peinamos la matriz, alisándola gradualmente en hebras cada vez más ordenadas.

Es mejor tomar la brecha inicial entre los elementos comparados no cualquiera, sino teniendo en cuenta un valor especial llamado factor reductor, cuyo valor óptimo es aproximadamente 1,247. Primero, la distancia entre elementos es igual al tamaño de la matriz dividido por factor de reducción(el resultado, por supuesto, se redondea al número entero más cercano). Luego, después de recorrer la matriz con este paso, volvemos a dividir el paso entre factor de reducción y revise la lista nuevamente. Esto continúa hasta que la diferencia del índice llega a uno. En este caso, la matriz se ordena mediante una burbuja normal.

El valor óptimo ha sido establecido experimental y teóricamente. factor de reducción:

Cuando se inventó este método, pocas personas le prestaron atención a finales de los años 70 y 80. Una década más tarde, cuando la programación ya no era competencia de los científicos e ingenieros de IBM, sino que ya estaba ganando rápidamente popularidad masiva, el método fue redescubierto, investigado y popularizado en 1991 por Stephen Lacy y Richard Box.

En realidad, eso es todo lo que quería contarles sobre la clasificación de burbujas y otros similares.

- Notas

* abreviado ( ucranio) - mejora
** Ordenado por bombilla ( ucranio) – Clasificación de burbujas
*** Clasificación por peine ( ucranio) – Clasificación de peines

Se ha estimado que hasta una cuarta parte del tiempo que los ordenadores centralizados dedican a clasificar datos. Esto se debe a que es mucho más fácil encontrar un valor en una matriz que ha sido ordenada previamente. De lo contrario, la búsqueda es un poco como buscar una aguja en un pajar.

Hay programadores que dedican todo su tiempo de trabajo a estudiar e implementar algoritmos de clasificación. Esto se debe a que la gran mayoría del software empresarial implica la gestión de bases de datos. La gente busca información en bases de datos todo el tiempo. Esto significa que los algoritmos de búsqueda tienen una gran demanda.

Pero hay un "pero". Los algoritmos de búsqueda funcionan mucho más rápido con bases de datos que ya están ordenadas. En este caso, sólo se requiere una búsqueda lineal.

Si bien las computadoras se quedan sin usuarios en algunos momentos, los algoritmos de clasificación continúan operando en las bases de datos. Los buscadores vuelven y la base de datos ya está ordenada según uno u otro propósito de búsqueda.

Este artículo proporciona ejemplos de implementaciones de algoritmos de clasificación estándar.

Orden de selección

Para ordenar una matriz en orden ascendente, debe encontrar el elemento con el valor más grande en cada iteración. Con él necesitas intercambiar el último elemento. El siguiente elemento con el valor más alto se coloca en el penúltimo lugar. Esto debería suceder hasta que los elementos en los primeros lugares de la matriz estén en el orden correcto.

código C ++

void SortAlgo::selectionSort(int data, int lenD) ( int j = 0; int tmp = 0; for (int i=0; i datos[k])( j = k; ) ) tmp = datos[i];

datos[i] = datos[j];

datos[j] = tmp;

código C ++

) ) clasificación de burbujas

La clasificación de burbujas compara elementos adyacentes e intercambia lugares si el siguiente elemento es más pequeño que el anterior. Se requieren múltiples pases a través de los datos. Durante la primera pasada, se comparan los dos primeros elementos de la matriz. Si no están en orden, se intercambian y luego se comparan los elementos del siguiente par. Bajo la misma condición, también cambian de lugar. Por tanto, la clasificación se produce en cada ciclo hasta llegar al final de la matriz.

void SortAlgo::bubbleSort(int data, int lenD) ( int tmp = 0; for (int i = 0;i

=(i+1);j--)( si (datos[j]

Orden de inserción

código C ++

La ordenación por inserción divide la matriz en dos regiones: ordenada y desordenada. Inicialmente, toda la matriz es una región desordenada. En la primera pasada, el primer elemento de la región desordenada se elimina y se coloca en la posición correcta en la región ordenada. En cada pasada, el tamaño de la región ordenada aumenta en 1 y el tamaño de la región desordenada disminuye en 1.

Combinar ordenar

código C ++

void SortAlgo::mergeSort(int data, int lenD) ( if (lenD>1)( int middle = lenD/2; int rem = lenD-middle; int * L = nuevo int; int * R = nuevo int; for ( int i=0;i

clasificación rápida

Quicksort utiliza un algoritmo de divide y vencerás. Comienza dividiendo la matriz original en dos regiones. Estas partes están a la izquierda y a la derecha del elemento marcado, llamado soporte. Al final del proceso, una parte contendrá elementos más pequeños que la referencia y la otra parte contendrá elementos más grandes que la referencia.

código C ++

void SortAlgo::quickSort(int * data, int const len) ( int const lenD = len; int pivot = 0; int ind = lenD/2; int i,j = 0,k = 0; if (lenD>1) ( int * L = nuevo int ; int * R = nuevo int ; pivote = datos; para (i=0;i

Un algoritmo para ordenar una matriz unidimensional utilizando el método de la "burbuja". Descripción del algoritmo. Diagrama de bloques y programa para ordenar en orden ascendente una matriz de tipo realde 7 elementos.

Descripción del algoritmo

La clasificación de los métodos de clasificación no siempre está claramente definida. Detengámonos en el método en el que el intercambio de dos elementos es la principal característica del proceso. El algoritmo de clasificación de intercambio simple a continuación se basa en el principio comparacionesYintercambio pares de elementos adyacentes hasta que todos los elementos estén ordenados.

Al igual que con los métodos de selección simples anteriores, hacemos pases repetidos a través de la matriz, cada vez examinando el elemento más pequeño del conjunto restante, moviéndonos hacia el extremo izquierdo de la matriz. Si, para variar, consideramos la matriz verticalmente en lugar de horizontalmente y, con un poco de imaginación, imaginamos los elementos como burbujas en un tanque de agua, con "pesos" correspondientes a sus claves, entonces cada paso a través de la matriz da como resultado una burbuja "flotante" hasta un nivel correspondiente a su peso (ver Tabla 2). Este método se conoce comúnmente como clasificación de burbujas. Su versión más simple se muestra en el Programa 1.

  1. Ejemplo de clasificación de burbujas

procedimiento ordenar burbujas;

var i, j: índice; incógnita: artículo;

comenzar para i := 2 a norte hacer

comenzar por j := norte hasta i hacer

si a[j-1].llave > a[j].llave entonces

comenzar incógnita := a[j-1]; a[j-1] := a[j]; a[j] := incógnita

fin{ordenar burbujas}

  1. Clasificación de burbujas

Este algoritmo es fácil de optimizar. Ejemplo en tabla. La Figura 2 muestra que las últimas tres pasadas no afectan de ninguna manera el orden de los elementos, ya que ya están ordenados. Una forma obvia de mejorar este algoritmo es recordar si se produjo algún intercambio en un pase determinado. De lo contrario, esto significa que el algoritmo puede continuar si recuerda no solo el hecho del intercambio, sino también el lugar (índice) del último intercambio. Después de todo, está claro que todos los pares de elementos vecinos con índices menores que este índice k, ya están ordenados en el orden correcto. Por lo tanto, los pases posteriores pueden finalizar en este índice, en lugar de pasar a un límite inferior predeterminado. i. Sin embargo, un programador atento notará una extraña asimetría aquí: una única "burbuja" mal colocada en el extremo "pesado" de la matriz ordenada flotará en su lugar en una sola pasada, pero un elemento mal colocado en el extremo "ligero" flotará en el lugar correcto con solo un paso en cada pasada. Por ejemplo, matriz

12 18 42 44 55 67 94 06

se ordenará utilizando el método de la burbuja en una sola pasada y ordenando una matriz

94 06 12 18 42 44 55 67

requerirá siete pases. Esta asimetría antinatural sugiere una tercera mejora: cambiar la dirección de pasajes sucesivos.

Análisis de clasificación de burbujas.

El número de comparaciones en el algoritmo de intercambio simple es

,

los números mínimo, promedio y máximo de transferencias (asignaciones de elementos) son iguales

,

,

.

  1. Diagrama de flujo de clasificación de burbujas.

Programaclasificación

A: conjunto de reales;

N, j, k: número entero;

WriteLn("Matriz de entrada");

para j:= 1 a N hacer

Escribir("A", j, "=");

WriteLn("Matriz fuente");

para j:= 1 a N hacer

Escribir(A[j]:8:1);

para j:= 2 a k hacer

si A > A[j] entonces

A := A[j];

WriteLn("Matriz ordenada");

para j:= 1 a N hacer

Escribir(A[j]:8:1);

No sólo no se considera el método más rápido, sino que además cierra la lista de los métodos de pedido más lentos. Sin embargo, también tiene sus ventajas. Por lo tanto, la clasificación de burbujas es la solución más lógica y natural al problema si necesita organizar elementos en un orden determinado. Una persona corriente, por ejemplo, lo utilizará manualmente, simplemente por intuición.

¿De dónde surgió un nombre tan inusual?

El nombre del método se inventó por analogía con las burbujas de aire en el agua. Esta es una metáfora. Así como pequeñas burbujas de aire suben a la superficie; después de todo, su densidad es mayor que la de cualquier líquido (en este caso, agua), cada elemento de la matriz, cuanto menor es en valor, más gradualmente hace su camino al comienzo de la lista de números.

Descripción del algoritmo

La clasificación de burbujas funciona así:

  • primer paso: los elementos de la matriz de números se toman de dos en dos y también se comparan en pares. Si en algún par de elementos el primer valor es mayor que el segundo, el programa los intercambia;
  • por lo tanto termina al final de la matriz. Mientras que todos los demás elementos permanecen como estaban, en un orden caótico y requieren una mayor clasificación;
  • por eso es necesaria una segunda pasada: se realiza por analogía con la anterior (ya descrita) y tiene el número de comparaciones - menos uno;
  • El pasaje número tres tiene una comparación menos que el segundo y dos menos que el primero. Etcétera;
  • En resumen, cada pasada tiene comparaciones (valores totales en la matriz, un número específico) menos (número de pasada).

Aún más brevemente, el algoritmo del futuro programa se puede escribir de la siguiente manera:

  • se verifica la matriz de números hasta que se encuentran dos números cualesquiera, y el segundo de ellos debe ser mayor que el primero;
  • El programa intercambia elementos de matriz que están colocados incorrectamente entre sí.

Pseudocódigo basado en el algoritmo descrito.

La implementación más simple es la siguiente:

Procedimiento Sortirovka_Puzirkom;

Comenzar

bucle para j de índice_inicial a índice_konechii;

bucle para i de índice_inicial a konechii_index-1;

Si masivo[i]>masivo

(intercambiar los valores);

Fin

Por supuesto, aquí la simplicidad sólo agrava la situación: cuanto más simple es el algoritmo, más defectos aparecen en él. El consumo de tiempo es demasiado grande incluso para una matriz pequeña (aquí entra en juego la relatividad: para una persona promedio, la cantidad de tiempo puede parecer pequeña, pero en el negocio de un programador, cada segundo o incluso milisegundo cuenta).

Se necesitaba una mejor implementación. Por ejemplo, teniendo en cuenta el intercambio de valores en una matriz:

Procedimiento Sortirovka_Puzirkom;

Comenzar

sortírovka = verdadero;

ciclo hasta ahora sortírovka = verdadero;

sortírovka = falso;

bucle para i de índice_inicial a konechii_index-1;

Si masivo[i]>masivo(el primer elemento es mayor que el segundo), entonces:

(intercambiar elementos);

sortírovka = verdadero; (indicó que se realizó el intercambio).

Fin.

Desventajas del método.

La principal desventaja es la duración del proceso. ¿Cuánto tiempo se tarda en hacer una burbuja?

El tiempo de ejecución se calcula a partir del cuadrado del número de números en la matriz; el resultado final es proporcional a él.

En el peor de los casos, la matriz se recorrerá tantas veces como elementos contenga menos un valor. Esto sucede porque eventualmente solo queda un elemento sin nada con qué comparar, y el último paso por la matriz se convierte en una acción inútil.

Además, el método de clasificación por intercambio simple, como también se le llama, sólo es eficaz para matrices pequeñas. No será posible procesar grandes cantidades de datos con su ayuda: el resultado serán errores o fallas del programa.

Ventajas

La clasificación de burbujas es bastante sencilla de entender. En los planes de estudio de las universidades técnicas, cuando se estudia el orden de los elementos de una matriz, se trata primero. El método se implementa fácilmente tanto en el lenguaje de programación Delphi (D) como en C/C++ (C/C plus plus), un algoritmo increíblemente simple para organizar valores en el orden correcto, y Bubble Sort es ideal para principiantes.

Debido a sus deficiencias, el algoritmo no se utiliza con fines extracurriculares.

Principio de clasificación visual

Vista inicial del array 8 22 4 74 44 37 1 7

Paso 1 8 22 4 74 44 37 1 7

8 22 4 74 44 1 37 7

8 22 4 74 1 44 37 7

8 22 4 1 74 44 37 7

8 22 1 4 74 44 37 7

8 1 22 4 74 44 37 7

1 8 22 4 74 44 37 7

Paso 2 1 8 22 4 74 44 7 37

1 8 22 4 74 7 44 37

1 8 22 4 7 74 44 37

1 8 22 4 7 74 44 37

1 8 4 22 7 74 44 37

1 4 8 22 7 74 44 37

Paso 3 1 4 8 22 7 74 37 44

1 4 8 22 7 37 74 44

1 4 8 22 7 37 74 44

1 4 8 7 22 37 74 44

1 4 7 8 22 37 74 44

Paso 4 1 4 7 8 22 37 44 74

1 4 7 8 22 37 44 74

1 4 7 8 22 37 44 74

1 4 7 8 22 37 44 74

Paso 5 1 4 7 8 22 37 44 74

1 4 7 8 22 37 44 74

1 4 7 8 22 37 44 74

Paso 6 1 4 7 8 22 37 44 74

1 4 7 8 22 37 44 74

Paso 7 1 4 7 8 22 37 44 74

Ejemplo de clasificación de burbujas en Pascal

Ejemplo:

const kol_mas=10;

var matriz:matriz de números enteros;

a, b, k: número entero;

writeln("entrada", kol_mas, "elementos de la matriz");

para a:=1 a kol_mas haga readln(array[a]);

para a:=1 a kol_mas-1 comienza

para b:=a+1 hasta kol_mas comienza

si massiv[a]>massiv[b] entonces comienza

k:=matriz[a]; masivo[a]:=masivo[b]; matriz[b]:=k;

fin;

writeln("después de ordenar");

para a:=1 a kol_mas hacer writeln(massiv[a]);

Ejemplo de clasificación de burbujas en lenguaje C

#incluir

#incluir

int principal(int argc, char* argv)

int masivo = (36, 697, 73, 82, 68, 12, 183, 88),i, ff;

para (; ;)(

ff = 0;

para (i = 7; i>0; i--)(

si (matriz[i]< massiv) {

intercambiar(matriz[i],masivo);

si (ff == 0) romper;

obtener(); // retraso de pantalla

Cuando se trabaja con matrices de datos, a menudo surge la tarea ordenar en orden ascendente o descendente, es decir, ordenar. Esto significa que los elementos de la misma matriz deben estar ordenados estrictamente. Por ejemplo, en el caso de ordenación ascendente, el elemento anterior debe ser menor (o igual) que el siguiente.

Solución

Hay muchos métodos de clasificación. Algunos de ellos son más eficaces, otros son más fáciles de entender. Lo suficientemente simple de entender es ordenar método de burbuja, que también se llama método de intercambio simple. ¿Qué es y por qué tiene un nombre tan extraño: “método de la burbuja”?

Como sabes, el aire es más ligero que el agua, por eso las burbujas de aire flotan. Es sólo una analogía. En la clasificación de burbujas ascendentes, los elementos más livianos (de menor valor) "flotan" gradualmente hasta el comienzo de la matriz, y los más pesados, uno tras otro, caen al fondo (hasta el final de la matriz).

El algoritmo y las características de esta clasificación son los siguientes:

  1. Durante el primer paso por la matriz, los elementos se comparan entre sí por parejas: el primero con el segundo, luego el segundo con el tercero, luego el tercero con el cuarto, etc. Si el elemento anterior es mayor que el siguiente, se intercambian.
  2. No es difícil adivinar que poco a poco el número mayor resulta ser el último. El resto de la matriz permanece sin ordenar, aunque se observa cierto movimiento de elementos de menor valor hacia el comienzo de la matriz.
  3. En la segunda pasada, no es necesario comparar el último elemento con el penúltimo. El último elemento ya está en marcha. Esto significa que el número de comparaciones será uno menos.
  4. En la tercera pasada, ya no es necesario comparar el penúltimo y el tercer elemento desde el final. Por tanto, el número de comparaciones será dos menos que en la primera pasada.
  5. Después de todo, cuando se itera a través de una matriz, cuando solo quedan dos elementos para comparar, solo se realiza una comparación.
  6. Después de esto, no hay nada con qué comparar el primer elemento y, por lo tanto, no es necesario realizar un paso final por la matriz. En otras palabras, el número de pasos a través de la matriz es m-1, donde m es el número de elementos de la matriz.
  7. El número de comparaciones en cada pasada es m-i, donde i es el número de pasadas por la matriz (primera, segunda, tercera, etc.).
  8. Al intercambiar elementos de una matriz, generalmente se usa una variable "búfer" (tercera), donde se coloca temporalmente el valor de uno de los elementos.

Programa Pascal:

constante metro = 10 ; var arr: matriz [1 .. m] de número entero; i, j, k: número entero; comenzar a aleatorizar; escribir(




Arriba