Código de C/Visual C - Algoritmo de ordenación Shell en C++

Imágen de perfil

Algoritmo de ordenación Shell en C++gráfica de visualizaciones


C/Visual C

estrellaestrellaestrellaestrellaestrella(4)
Publicado el 13 de Febrero del 2002 por Administrador
42.918 visualizaciones desde el 13 de Febrero del 2002. Una media de 56 por semana
Implementación del algoritmo de ordenación shell en C++.

Versión 1
estrellaestrellaestrellaestrellaestrella(4)

Publicado el 13 de Febrero del 2002gráfica de visualizaciones de la versión: Versión 1
42.919 visualizaciones desde el 13 de Febrero del 2002. Una media de 56 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

Adaptación y mejora del método por inserción directa. Se utiliza un array con gran número de elemento en el cual compara a cada elemento con el que está a cierto número de lugares a su izquierda. Este salto es constante a razón de N/2 (siendo N el número de elementos). Se realiza el bucle hasta que no se intercanvien mas elementos de sitio. Este salto se reduce a la mitad y se vuelven a dar pasadas hasta que no se intercambie nadie con nadie. El algoritmo finaliza en el momento en que el salto es 1.

Ejemplo:
Tenemos el siguente array {55,36,19,24,25,50}

Salto=3:
Primera iteración:
{24,36,19,55,25,50} <-- Cambia el 55 y el 24.
{24,25,19,55,36,50} <-- Cambia el 36 y el 25.
Salto=1:
Primera iteración:
{24,19,25,55,36,50} <-- Cambia el 25 y el 19.
{24,19,25,36,55,50} <-- Cambia el 55 y el 36.
{24,19,25,36,50,55} <-- Cambia el 50 y el 55.
Segunda iteración:
{19,24,25,36,50,55} <-- Cambia el 19 y el 24.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/* -------------------------------------------------- */
/*  Implementación del algoritmo de ordenación Shell  */
/* ------ http://www.lawebdelprogramador.com -------- */
/* -------------------------------------------------- */
#include<stdio.h>
#define MAXC 7
 
void main()
{
	int array[MAXC]={6,1,5,2,3,4,0};
	int cont,pasos,temp,i;
 
	for(cont=MAXC/2;cont!=0;cont/=2)
		for(pasos=1;pasos!=0;)
		{
			pasos=0;
			for(i=cont;i<MAXC;i++)
				if(array[i-cont]>array[i])
				{
					temp=array[i];
					array[i]=array[i-cont];
					array[i-cont]=temp;
					pasos++;
				}
		}
}



Comentarios sobre la versión: Versión 1 (4)

Pablo Cesar
13 de Febrero del 2002
estrellaestrellaestrellaestrellaestrella
×××Esta con ganas el
codesource×××
♪bye~♪
Responder
Gustavo
09 de Marzo del 2007
estrellaestrellaestrellaestrellaestrella
Hasta que por fin encontré uno que sirviera.
Muy Bueno.
Responder
Camilo Andres
30 de Octubre del 2007
estrellaestrellaestrellaestrellaestrella
A quien me pueda colaborar se lo agradecere...
necesito lo mas pronto posible 3 programas en c++,
1 con la aplicacion del quicksort
1 con la aplicacion del metodo de shell
1 con la aplicacion del metodo de busqueda binaria.

Agradezco la colaboracion pertinente
Responder
Programador Buchon
01 de Marzo del 2016
estrellaestrellaestrellaestrellaestrella
Esta al 100
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s86