Usuario
Ayuda con el metodo burbuja

Pregunta
-
Como puedo obtener el numero de intercambios y comparacion en un ordenamiento burbuja
int[] datos = new int[5];
private void btnOrden_Click(object sender, EventArgs e)
{
datos[0] = Convert.ToInt16(this.txt0.Text);
datos[1] = Convert.ToInt16(this.txt1.Text);
datos[2] = Convert.ToInt16(this.txt2.Text);
datos[3] = Convert.ToInt16(this.txt3.Text);
datos[4] = Convert.ToInt16(this.txt4.Text);
int can = datos.Count(); // Cantidad de locaciones
for(int i = 0; i < can; i++)
{
for(int j = i + 1; j < can; j++)
{
if (datos[i] > datos[j])
{
int tem = datos[i];
datos[i] = datos[j];
datos[j] = tem;
}
}
}
LlenarListBox();
}
private void LlenarListBox()
{
int can = datos.Count();
this.lstBurbuja.Items.Clear();
for (int x = 0; x < can; x++)
{
this.lstBurbuja.Items.Add(datos[x]);
// this.lstBurbuja.Items.Add(datos[num]);
}
}
private void btnRandom_Click(object sender, EventArgs e)
{
Random num = new Random();
this.txt0.Text = Convert.ToString(num.Next(10));
this.txt1.Text = Convert.ToString(num.Next(10));
this.txt2.Text = Convert.ToString(num.Next(10));
this.txt3.Text = Convert.ToString(num.Next(10));
this.txt4.Text = Convert.ToString(num.Next(10));
int can = datos.Count(); // Cantidad de locaciones
for (int i = 0; i < can; i++)
{
for (int j = i + 1; j < can; j++)
{
if (datos[i] > datos[j])
{
int tem = datos[i];
datos[i] = datos[j];
datos[j] = tem;
}
}
}
LlenarListBox();
}
- Editado ProgramadorAECF jueves, 27 de octubre de 2016 14:51 mejor explicado
Todas las respuestas
-
Hola,
Pon un contador.
int[] datos = new int[5]; int intercambio=0; private void btnOrden_Click(object sender, EventArgs e) { datos[0] = Convert.ToInt16(this.txt0.Text); datos[1] = Convert.ToInt16(this.txt1.Text); datos[2] = Convert.ToInt16(this.txt2.Text); datos[3] = Convert.ToInt16(this.txt3.Text); datos[4] = Convert.ToInt16(this.txt4.Text); int can = datos.Count(); // Cantidad de locaciones for(int i = 0; i < can; i++) { for(int j = i + 1; j < can; j++) { if (datos[i] > datos[j]) { int tem = datos[i]; datos[i] = datos[j]; datos[j] = tem; intercambio++; } } } LlenarListBox(); }
Es de buena educación dar las gracias cuando te ayudan, si alguna respuesta te ha sido de utilidad agradécelo marcandola como útil.
Blog -
-
Perdona, pero no entiendo la pregunta.
int intercambio=0;
Es una variable de clase que esta disponible en todos los metodos de la clase.
intercambio++;
incrementa en uno la variable intercambio.
Es de buena educación dar las gracias cuando te ayudan, si alguna respuesta te ha sido de utilidad agradécelo marcandola como útil.
Blog -