El algoritmo de ordenamiento Shell mejora el método de inserción al comparar elementos separados por saltos de tamaño decreciente, permitiendo que los elementos se muevan más rápido a su posición final. Comienza con saltos grandes y luego reduce progresivamente el tamaño del salto hasta alcanzar una ordenación por inserción directa, dejando la lista casi ordenada.
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Método Burbuja
• Método por Inserción
Creado por Ing. Alvaro Enrique Ruano
Sesion07- Estructuras de control (Oracle)José Toro
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 4. Programación en Oracle
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno construye programas estructurados utilizando el lenguaje PL/SQL dentro del manejador de base de datos Oracle. Incorpora cursores para procesar grandes volúmenes de información y gestiona los posibles errores de ejecución con el uso de excepciones.
Temario
4.2 Tema 7: ESTRUCTURAS DE CONTROL EN PL/SQL
4.2.1 Estructuras Condicionales
4.2.2 Estructuras Cíclicas
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Método Burbuja
• Método por Inserción
Creado por Ing. Alvaro Enrique Ruano
Sesion07- Estructuras de control (Oracle)José Toro
Este minitutorial tiene como objetivo captar todos los conceptos dictados en cada sesión en el curso de Base de Datos Avanzado II, así como brindar apoyo a los alumnos de la carrera técnica de Computación e Informática, que por algún motivo no hayan asistido a clases.
UNIDAD 4. Programación en Oracle
Logro de la Unidad de Aprendizaje
Al término de la unidad, el alumno construye programas estructurados utilizando el lenguaje PL/SQL dentro del manejador de base de datos Oracle. Incorpora cursores para procesar grandes volúmenes de información y gestiona los posibles errores de ejecución con el uso de excepciones.
Temario
4.2 Tema 7: ESTRUCTURAS DE CONTROL EN PL/SQL
4.2.1 Estructuras Condicionales
4.2.2 Estructuras Cíclicas
jesus se opone abiertamente a la doctrina equivicada de los fariseos, y sectas de su fe judaica., el no vino a conquistar a punta de lanza, ..sino con la fuerza del amor.
EL SENOR SE ;LE APARECE RESUCITADO A MARGARITA MARIA LACOQUE, CON EL PECHO ABIERTO MOSTRANDOLE SU CORAZON TRASPASADO , Y CON UNA CORONA DE SEPINAS EN SU CENTRO QUE HACIA BROTAR SANGRE DE EL.
Es un proyecto en el que tratamos de encontrar las consecuencias que tiene un programador por estar tantas horas sentado al frente de un computador. ademas intentamos encontrar la raíz del problema y por consiguiente la solucion
control de emisiones de gases contaminantes.pptxjesusbellido2
en el siguiente documento s epodra apreciar los gases que emiten los vehiculos y sus consecuencias tambien se podra apreciar las normas euro cino y las normas euro seis
1. Republica Bolivariana De Venezuela
Ministerio Del Poder Popular Para La Defensa
Universidad Nacional Experimental Politécnica De Las Fuerzas Armadas
Unefa-Núcleo Mérida
Catedra: Lenguaje de Programación II
ORDENACIÓN SHELL
Bachilleres:
Sánchez Rivas Ronald José. C.I.: V- 18.798.569.
Fernández Jean Carlos C.I.: V- 15,074,131
2. La ordenación Shell debe el nombre su inventor Donald L.
Shell que lo publicó en 1959. Algunos libros de texto y
referencias antiguas le llaman ordenación "Shell-Metzner"
por Marlene Metzner Norton, pero según Metzner, "No
tengo nada que ver con el algoritmo de ordenamiento, y
mi nombre nunca debe adjuntarse a éste.
Se suele denominar también ordenación por inserción con
incrementos decrecientes. Se considera que el método Shell
es una mejora de los métodos de inserción directa.
ORDENACIÓN SHELL
3. En el álgoritmo de inserción, cada elemento se compara
con los elementos contiguos de su izquierda, uno tras otro.
Si el elemento a insertar es el más pequeño hay que
realizar muchas comparaciones antes de colocarlo en su
lugar definitivo.
El algoritmo de Shell modifica los saltos contiguos
resultantes de las comparaciones por saltos de mayor
tamaño y con ello se consigue que la ordenación sea más
rápida. Generalmente se toma como salto inicial n/2
(siendo n el número de elementos), luego se reduce el
salto a la mitad en cada repetición hasta que el salto es de
tamaño 1.
ORDENACIÓN SHELL
4. Los pasos a seguir para una lista de n
elementos son los siguientes:
1- Dividir la lista original en n/2 grupos de dos, considerando
un incremento o salto entre los elementos de n/2.
2- Clarificar cada grupo por separado, comparando las
parejas de elementos, y si no están ordenados se
intercambian.
Algoritmo de Shell
5. Los pasos a seguir para una lista de n elementos son los
siguientes:
3- Se divide la lista en la mitad de grupos (n/4), con un
incremento o salto entre los elementos también mitad (n/4),
y nuevamente se clasifica cada grupo por separado.
4- Así sucesivamente, se sigue dividiendo la lista en la mitad
de grupos que en el recorrido anterior con un incremento o
salto decreciente en la mitad que el salto anterior y luego
clasificando cada grupo por separado.
5- El algoritmo termina cuando se consigue que el tamaña del
salto es 1.
Algoritmo de Shell
6. Intervalo <= n/2
Mientras (intervalo>0) hacer
//para dividir la lista en grupos y clasificar cada grupo se anida este código.
Desde i <=(intervalo +1) hasta n hacer
J <= i-intervalo
Mientras (j>0) hacer
K<=j + intervalo
Si (a(j) <= a(k)) entonces
J <= -1
Sino
Intercambio (a(j), a(k));
J<=j- intervalo
Fin_si
Fin_mientras
Fin_desde
Por consiguiente, los recorridos por la lista
esta condicionados por el bucle,
7. En el código anterior se observa que se compara pares de
elementos indexados por j y k, (a[j] , a [k]), separados por un
salto, intervalo. Así, si n=8 el primer valor de intervalo =4, y los
índices i=5, j=1, k=6. los siguientes valores de los índices son
i=6, j=2, k=7, y así hasta recorrer la lista.
Para realizar un nuevo recorrido de la lista con la mitad de
grupos, el intervalo se hace la mitad:
Intervalo <= intervalo/2.
Así se repite los recorridos por la lista, mientras intervalo >0.
8. Obtener las secuencias parciales del vector al aplicar
el método Shell para ordenar en orden creciente la
lista: 6 1 5 2 3 4 0.
El número de elementos que tiene la lista es 6, por lo
que el salto inicial es 6/2 = 3.
Ejemplo: ordena una lista de elementos
siguiendo paso a paso el método de Shell.
9. Recorrido Salto Intercambios Lista
1 3 (6,2), (5,4), (6,0) 2 1 4 0 3 5 6
2 3 (2,0) 0 1 4 2 3 5 6
3 3 Ninguno 0 1 4 2 3 5 6
Salto 3/2=1
4 1 (4,2),(4,3) 0 1 2 3 4 5 6
5 1 Ninguno 0 1 2 3 4 5 6
La siguiente tabla muestra el número de recorridos realizados
en la lista con los saltos correspondiente.
10. Código C++ – Ordenamiento Shell
//Ordenamiento Shell
//Codificado por sAfOrAs
#include<iostream>
using namespace std;
#define largo 50
void ordenShell(int A[],int n)
{
int i, j, inc, temp;
for(inc = 1 ; inc<n;inc=inc*3+1);
while (inc > 0)
{
for (i=inc; i < n; i++)
{
j = i;
temp = A[i];
while ((j >= inc) && (A[j-inc] > temp))
{
A[j]=A[j- inc];
j = j - inc;
}
A[j] = temp;
}
inc/= 2;
}
}
11. void leeCadena(int cant,int n[])
{
int i;
for(i=0;i<cant;i++)
{
cout<<"Ingresa numero "<<i+1<<": ";
cin>>n[i];
}
}
void muestraCadena(int cant,int n[])
{
int i;
for(i=0;i<cant;i++)
{
cout<<n[i]<<endl;
}
}
Código C++ – Ordenamiento Shell
12. int main () {
int A[largo],n;
do{
cout<<"Cantidad de numeros a ingresar: ";cin>>n;
if(n<=0||n>largo)
cout<<"Debe ingresar un valor > a 0 y < a
"<<largo<<endl;
}while(n<=0||n>largo);
leeCadena(n,A);
ordenShell(A,n);
muestraCadena(n,A);
}
Código C++ – Ordenamiento Shell
14. Shell sort mejora el ordenamiento por inserción
comparando elementos separados por un espacio de
varias posiciones. Esto permite que un elemento haga
"pasos más grandes" hacia su posición esperada. Los
pasos múltiples sobre los datos se hacen con tamaños
de espacio cada vez más pequeños. El último paso del
Shell sort es un simple ordenamiento por inserción,
pero para entonces, ya está garantizado que los datos
del vector están casi ordenados.
Conclusiones