ORDENACION SHELL ESTRUCTURA DATOS C#

 

 

 

Shell Sort

Esta forma de ordenación es muy parecida a la ordenación con burbuja. La diferencia es que usando el metodo de burbuja se realiza una comparación lineal, y shellsort trabaja con una segmentación entre los datos, acomodandolos en un arreglo unidimensional y subsecuentemente ordenando las columnas. Por lo tanto es un buen método, pero no el mejor para implementarlo en grandes arreglos.

Este proceso se repite cada vez con un arreglo menor, es decir, con menos columnas, en la ultima repeticion solo tiene una columna, cada que se realiza el proceso se ordena mas los datos, hasta que en su ultima repeticion estan completamente ordenados. Sin embargo el numero de operaciones para ordenar en cada repeticion esta limitado debido al preordenamiento que se obtuvo en las repeticiones anteriores.

 

Algoritmo

void ShellSort(Lista)Lista es un vector que contiene los elementos a ser ordenados. - Declarar variables enteras: i, j, incremento = 3, temp - Repetir mientras incremento > 0: - Repetir mientras i sea menor al tamaño de la Lista - j = i, temp = Lista[i] - Repetir mientras j >= incremento y Lista[j - incremento] > temp - Lista[j] = Lista[j - incremento], j = j - incremento - [fin de ciclo del paso 5] - Lista[j] = temp - [fin de ciclo del paso 3] - si incremento/2 != 0 entonces: - incremento = incremento/2 - si incremento == 1 entonces: - incremento = 0 - si no, entonces: - incremento = 1 - [fin de ciclo del paso 2] - Salir—-Forma principal del programa:Codigo:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace ShellSort{ public partial class Form1 : Form { public static int[] Lista = new int[10];public static int N = 0;public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){ Form2 Recorrer = new Form2();}private void button2_Click(object sender, EventArgs e){Form3 Insercion = new Form3();}private void button3_Click(object sender, EventArgs e){Form5 Eliminacion = new Form5();}private void button4_Click(object sender, EventArgs e){ Form4 Busqueda = new Form4(); } private void button5_Click(object sender, EventArgs e) { if (N != 0) { ShellSort(); MessageBox.Show("La lista ha sido ordenada", "Exito", MessageBoxButtons.OK); } else MessageBox.Show("Lista vacia…", "Error", MessageBoxButtons.OK); } public static void ShellSort() { int i, j, incremento = 3, temp; while (incremento > 0) { for (i = 0; i 1) { Lista[j] = Lista[j - incremento]; j = j - incremento; } Lista[j] = temp; } if (incremento / 2 != 0) incremento = incremento / 2; else if (incremento == 1) incremento = 0; else incremento = 1; } } private void button6_Click(object sender, EventArgs e) { Application.Exit(); } }}Recorrido:Codigo:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace ShellSort{ public partial class Form2 : Form { public Form2() { InitializeComponent(); Recorrido(); } private void Recorrido() { if (Form1.N != 0) { this.Show(); listBox1.Items.Clear(); for (int i = 0; i

 

 

1) j >= incremento) && (Lista[j - incremento] > temp

ORDENACION SHELL ESTRUCTURA DATOS C#

ORDENACION SHELL ESTRUCTURA DATOS C#

Esta forma de ordenación es muy parecida a la ordenación con burbuja. La diferencia es que usando el metodo de burbuja se realiza una comparación lineal, y

programar

es

https://aprendeprogramando.es/static/images/programar-ordenacion-shell-estructura-datos-c-84-0.jpg

2024-11-28

 

ORDENACION SHELL ESTRUCTURA DATOS C#
ORDENACION SHELL ESTRUCTURA DATOS C#

MÁS INFORMACIÓN

El contenido original se encuentra en https://programacionfacil.com/estructura_datos_csharp/ordenacion_shell/
Todos los derechos reservados para el autor del contenido original (en el enlace de la linea superior)
Si crees que alguno de los contenidos (texto, imagenes o multimedia) en esta página infringe tus derechos relativos a propiedad intelectual, marcas registradas o cualquier otro de tus derechos, por favor ponte en contacto con nosotros en el mail [email protected] y retiraremos este contenido inmediatamente

 

 

Update cookies preferences