none
Por favor ayuda con Ordenamiento por seleccion RRS feed

  • Pregunta

  • Como le haria para ordenar numeros desde un archivo, por favor ayuda
    Batalle en comprender el burbuja un poco y ahora tengo dudas con este :/

            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, 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();
            }

    jueves, 27 de octubre de 2016 15:46

Todas las respuestas

  • Puedes aclarar un poco? en el código no veo que se use ningun archivo.
    jueves, 27 de octubre de 2016 18:05
  • 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());
            }

    viernes, 28 de octubre de 2016 13:14
  • en el valores.txt debe ordenar los valores de forma ascendente y en el listbox mostrar solo los intercambios que se hicieron, gracias por sus repsuestas.
    viernes, 28 de octubre de 2016 13:41
  • 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());
                    }
                }
            }

    viernes, 28 de octubre de 2016 13:46