Foros del Web » Programación » .NET »

como ordenar de forma ascendente y descendente en un list box

Estas en el tema de como ordenar de forma ascendente y descendente en un list box en el foro de .NET en Foros del Web. bueno estoy haciendo un trabajo facil pero me falta solo una cosa "ordenar en dos listbox unos en forma ascendente y el otro en forma ...
  #1 (permalink)  
Antiguo 19/10/2006, 14:05
 
Fecha de Ingreso: octubre-2006
Mensajes: 1
Antigüedad: 8 años, 1 mes
Puntos: 0
Sonrisa como ordenar de forma ascendente y descendente en un list box

bueno estoy haciendo un trabajo facil pero me falta solo una cosa "ordenar en dos listbox unos en forma ascendente y el otro en forma descendente" porfa ayudenme
  #2 (permalink)  
Antiguo 24/10/2006, 21:33
(Desactivado)
 
Fecha de Ingreso: julio-2006
Mensajes: 273
Antigüedad: 8 años, 3 meses
Puntos: 5
De acuerdo Asi creo que lo tienes que hacer

Bien yo creo que en un listbox tienes números y los quieres ordenar en orden ascendente y descendente bien.

recorda que si en caso de que son números podemos colocarlos en un array y mostrar dichos elementos en un listbox entonces lo mas simple que debes hacer es "EL METODO DE LA BURBUJA",

aca te pongo el código para que trabajes con él

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim arreglo() As Integer = {2, 1, 5, 3, 8, 9, 4, 6, 7}
Dim i, pasadas, almacena As Integer

'Adiere todos los elementos del arreglo en
'forma original
For i = 0 To 8
listNormal.Items.Add(arreglo(i))
Next


'Aca esta el metodo de la burbuja para ordenar
'en forma Ascendente

For pasadas = 1 To 8
For i = 0 To 8 - 1
'Compara los elementos adyacentes y los intercambia
'si el primer elemento es mayor que el segundo
If (arreglo(i) > arreglo(i + 1)) Then
almacena = arreglo(i)
arreglo(i) = arreglo(i + 1)
arreglo(i + 1) = almacena
End If
Next
Next

For i = 0 To 8
listAscendente.Items.Add(arreglo(i))
Next


For pasadas = 1 To 8
For i = 0 To 8 - 1
'Lo que lo distinge es el "<" que hace
'lo contrario de ordenarlo en forma
If (arreglo(i) < arreglo(i + 1)) Then
almacena = arreglo(i)
arreglo(i) = arreglo(i + 1)
arreglo(i + 1) = almacena
End If
Next
Next

For i = 0 To 8
listDescendente.Items.Add(arreglo(i))
Next
End Sub
End Class

Espero haberte ayudado.
  #3 (permalink)  
Antiguo 24/10/2006, 21:38
(Desactivado)
 
Fecha de Ingreso: julio-2006
Mensajes: 273
Antigüedad: 8 años, 3 meses
Puntos: 5
asi debes solucionarlo

Bien yo creo que en un listbox tienes números y los quieres ordenar en orden ascendente y descendente bien.

recorda que si en caso de que son números podemos colocarlos en un array y mostrar dichos elementos en un listbox entonces lo mas simple que debes hacer es "EL METODO DE LA BURBUJA",

aca te pongo el código para que trabajes con él

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim arreglo() As Integer = {2, 1, 5, 3, 8, 9, 4, 6, 7}
Dim i, pasadas, almacena As Integer

'Adiere todos los elementos del arreglo en
'forma original
For i = 0 To 8
listNormal.Items.Add(arreglo(i))
Next


'Aca esta el metodo de la burbuja para ordenar
'en forma Ascendente

For pasadas = 1 To 8
For i = 0 To 8 - 1
'Compara los elementos adyacentes y los intercambia
'si el primer elemento es mayor que el segundo
If (arreglo(i) > arreglo(i + 1)) Then
almacena = arreglo(i)
arreglo(i) = arreglo(i + 1)
arreglo(i + 1) = almacena
End If
Next
Next

For i = 0 To 8
listAscendente.Items.Add(arreglo(i))
Next


For pasadas = 1 To 8
For i = 0 To 8 - 1
'Lo que lo distinge es el "<" que hace
'lo contrario de ordenarlo en forma
If (arreglo(i) < arreglo(i + 1)) Then
almacena = arreglo(i)
arreglo(i) = arreglo(i + 1)
arreglo(i + 1) = almacena
End If
Next
Next

For i = 0 To 8
listDescendente.Items.Add(arreglo(i))
Next
End Sub
End Class

Espero haberte ayudado.
  #4 (permalink)  
Antiguo 26/10/2006, 15:40
 
Fecha de Ingreso: octubre-2006
Mensajes: 53
Antigüedad: 8 años, 1 mes
Puntos: 1
sera mas simple ?

bueno espero que esta solucion sea menos pesada y la mas rapida y sobre todo que te ayude mucho

Dim list As New System.Collections.ArrayList()

Dim arreglo() As Integer = {2, 1, 5, 3, 8, 9, 4, 6, 7}
Dim valor As Integer
Dim i As Integer

For Each valor In arreglo
list.Add(valor)
Next

list.Sort()

'ascendente
For i = 0 To list.Count - 1
ListBox1.Items.Add(i)
Next

'descendente
For i = list.Count - 1 To 0 Step -1
ListBox2.Items.Add(i)
Next
  #5 (permalink)  
Antiguo 28/10/2006, 21:02
(Desactivado)
 
Fecha de Ingreso: julio-2006
Mensajes: 273
Antigüedad: 8 años, 3 meses
Puntos: 5
De acuerdo excelente

Esta bien, excelente solución amigo, yo lo cogi de un libro de c++, y lo converti a vb .net pero excelente forma.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 13:53.
SEO by vBSEO 3.3.2