Está en la página 1de 10

ORDENACIÓN POR

INTERCAMBIO
DIRECTO C O N SEÑAL
PRO G RAM AC IÓ N III
CON T E N IDO

1. INTRODUCCIÓN

2. FUNCIONAMIENTO

3. ALGORITMO

4. ANÁLISIS DE EFICIENCIA

5. CONCLUSIÓN
INTRODUCCIÓN
La ordenación por intercambio directo con señal es
una variante del algoritmo de ordenación por
intercambio directo que utiliza una señal para
mejorar su eficiencia en algunos casos. La señal se
utiliza p a r a marcar el punto en el que se realizó el
último intercambio, lo que permite al algoritmo evitar
recorrer elementos que ya han sido ordenados.
FUNCIONAMIENTO
01 02 03
Se c o m p a r a n los dos primeros Si el p r i m e r e l e m e n t o es Se a v a n z a un e l e m e n t o h a c i a l a
e le m entos de l a lis ta . m a y o r que el segundo, se d e r e c h a y se vu e l ve a c o m p a r a r
i n t e r c a m b i a n y se e s t a b l e c e el nue vo p r i m e r e l e m e n t o c o n el
u n a señal en l a posición d e l siguiente.
segundo e l e m e n t o .

04 05 06
Si el p rim e r e l e m e n t o es Se r e p i t e n los pasos 3 y 4 Si se ha realizado algún
m a yo r que el segundo, se h a s t a q u e se l l e g a a l f i n a l i n t e r c a m b i o , se r e p i t e t o d o e l
i n t e r c a m b i a n y se e s t a b l e c e de la lista. proceso desde el p r i n c i p i o ,
una señal en l a posición de l p e r o sólo h a s t a l a p o s i c i ó n d e
segundo e l e m e n t o . l a ú l t i m a s eñ a l. Si no, l a l i s t a
está o r d e n a d a y el a l g o r i t m o
se d e t i e n e .
ALGORITMO
public static void
OrdenarPorIntercambioConSenal(int[] lista)
{
bool intercambio = false;
int n = lista.Lenght;
do
{
intercambio = false;
for (int i = 0; i < n -1; i++)
{
if (lista [i] > lista [i + 1])
{
int temp = lista[i + 1];
lista [i] = lista [i + 1];
lista [i + 1] = temp;
intercambio = true;
}
}
n--;
} while (intercambio);
}
ANÁLISIS DE
EFICIENCIA
La ordenación por intercambio directo con
01 señal es más eficiente que la ordenación
por intercambio directo convencional en
listas en las que sólo algunos elementos
están desordenados, ya que evita recorrer
elementos que ya han sido ordenados.

Sin embargo, su complejidad sigue siendo


02 alta en listas grandes y desordenadas, lo
que la hace menos eficiente que otros
algoritmos de ordenamiento.
ANÁLISIS DE EFICIENCIA

En el mejor caso, cuando el arreglo ya está


03 El análisis de eficiencia de la ordenación por 05 ordenado, se realiza un solo recorrido del
intercambio directo con señal se realiza de la
arreglo y no se realizan intercambios. La
misma manera que la ordenación por
complejidad temporal en el mejor caso es O(N).
intercambio convencional. La complejidad
temporal del algoritmo depende del número de
comparaciones y de intercambios realizados.

En el caso promedio, la complejidad


04 En el peor caso, cuando el arreglo está en 06
temporal también es O(N^2), lo que hace
orden inverso, se realizan N-1 recorridos del
que la ordenación por intercambio directo
arreglo y cada recorrido requiere N-1
con señal sea ineficiente para arreglos de
comparaciones y posiblemente N-1
intercambios. Por lo tanto, la complejidad gran tamaño.
temporal en el peor caso es O(N^2).
ANÁLISIS DE EFICIENCIA

CASO COMPLEJIDAD TEMPORAL


Mejor caso O(N)
Caso promedio O(N^2)
Peor caso O(N^2)
CONCLUSIÓN
En resumen, la ordenación por intercambio directo con señal
es una variante del algoritmo de ordenamiento por
intercambio que utiliza una señal para mejorar su eficiencia.
Existen otros algoritmos de ordenamiento más eficientes
para estos casos, como QuickSort o MergeSort.
Sin embargo, la ordenación por intercambio directo con
señal puede ser útil en situaciones específicas en las que se
espera que el arreglo esté parcialmente ordenado.
GRACIAS

También podría gustarte