Usuario
Por favor ayuda con Ordenamiento por seleccion

Pregunta
-
Como le haria para ordenar numeros desde un archivo, por favor ayuda
int[] datos = new int[5];
Batalle en comprender el burbuja un poco y ahora tengo dudas con este :/
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, k = 0; i < can - 1; i++)
{
k = i;
for (int j = i + 1; j < can; j++)
{
if (datos[k] > datos[j])
{
k = j;
this.lstIntercambios.Items.Add(datos[j] + "con" + datos[i]);
}
}
int tem = datos[i];
datos[i] = datos[k];
datos[k] = tem;
}
LlenarListBox();
}
private void LlenarListBox()
{
int can = datos.Count();
this.lstSeleccion.Items.Clear();
for (int x = 0; x < can; x++)
{
this.lstSeleccion.Items.Add(datos[x]);
}
}
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();
}
Todas las respuestas
-
-
Lo que pasa es que debo generar un boton ranbom file en el metodo de seleccion el cual genere 1000 valores random y los almacene en un archivo txt llamado valores.txt para despues estos valroes ser procesador por el algoritmo de seleccion ordanandolos ascendentemente, asi como tambien mostrar los intercambios realizados. Esto es lo que llevo hasta ahora .
string ruta = "C:\\valores.txt";
int[] numeros;
private void Buscar()
{
using (StreamReader sr = new StreamReader(ruta))
{
// Lee todo el contenido del archivo y lo pasa a la variable datos
datos = sr.Read();
}
if (datos.Length > 0)
{
// Inicializa el tama;o de los arreglos de acuerdo a la cantidad de caracteres
numeros = new int[datos.Length];
}
}
private void btnRanF_Click(object sender, EventArgs e)
{
lstSeleccion.Items.Add(numeros[datos.Length].ToString());
} -
-
Ya logre crear el archivo con los 1000 valores, pero ahora como le haria para ordenarlos y me muestre los intercambios que se hicieron?
esto es lo que tengo:
private void btnRanF_Click(object sender, EventArgs e)
{
Random r = new Random();
int[] numeros = new int[r.Next(0, 1000)];
for (int i = 0; i < numeros.Length; i++)
numeros[i] = r.Next(0, 1000);
using (StreamWriter writer = new StreamWriter("C:\\Practica3\\valores.txt", false))
{
for (int i = 0; i < numeros.Length; i++)
{
writer.WriteLine(numeros[i].ToString());
}
}
}