|
|||
|
Este es el metodo de ordenacion "Qicksort", Recibe como parametro un arreglo Sub QuickSort(List() As Double) ' Ordena un arreglo usando el algoritmo deQuick Sort Dim i As Double, j As Double, b As Double Dim l As Double, t As Double, r As Double, d As Double Dim p(1 To 100) As Double Dim w(1 To 100) As Double k = 1 p(k) = LBound(List) w(k) = UBound(List) l = 1 d = 1 r = UBound(List) Do toploop: If r - l < 9 Then GoTo bubsort i = l j = r While j > i comp = comp + 1 If List(i) > List(j) Then swic = swic + 1 t = List(j) oldx1 = List(j) oldy1 = j List(j) = List(i) oldx2 = List(i) oldy2 = i newx1 = List(j) newy1 = j List(i) = t newx2 = List(i) newy2 = i d = -d End If If d = -1 Then j = j - 1 Else i = i + 1 End If Wend j = j + 1 k = k + 1 If i - l < r - j Then p(k) = j w(k) = r r = i Else p(k) = l w(k) = i l = j End If d = -d GoTo toploop bubsort: If r - l > 0 Then For i = l To r b = i For j = b + 1 To r comp = comp + 1 If List(j) <= List(b) Then b = j Next j If i <> b Then swic = swic + 1 t = List(b) oldx1 = List(b) oldy1 = b List(b) = List(i) oldx2 = List(i) oldy2 = i newx1 = List(b) newy1 = b List(i) = t newx2 = List(i) newy2 = i End If Next i End If l = p(k) r = w(k) k = k - 1 Loop Until k = 0 End Sub
__________________
Solo hay dos cosas infinatas: El Universo y la estupides humana; y del Universo no estoy seguro. Albert Einstein |
|
||||
|
No se si sera el mas rapido pero yo tengo un codigo mas reducido y que permite ordenar tanto de mayor a menor como de menor a mayor: Código:
'//Codigo perteneciente a la libreria dx_lib32 2.0. Este codigo es libre de usarse y modificarse: 'Ordena una lista de numeros de menor a mayor o viceversa (0 = <, 1 = >) Public Function SORT_LongList(List() As Long, Optional SortMode As Byte) As Long On Error GoTo ErrOut Dim Temp As Long, X As Long, Sorted As Boolean X = UBound(List) If SortMode < 0 Then SortMode = 0 Else If SortMode > 1 Then SortMode = 1 Sorted = False Do While Not Sorted Sorted = True For X = 0 To UBound(List) - 1 If SortMode = 1 And List(X) < List(X + 1) Or SortMode = 0 And List(X) > List(X + 1) Then Temp = List(X + 1) List(X + 1) = List(X) List(X) = Temp Sorted = False End If DoEvents Next X DoEvents Loop SORT_LongList = 1 Exit Function ErrOut: If Err.Number = 9 Then SORT_LongList = 2 'No hay elementos en la lista. End Function Modificando el tipo de dato se puede apañar para que ordene listas de los diferentes tipos de datos numericos e incluso cadenas de texto. En mi libreria tengo implementada una version para cada tipo de dato, al menos los mas basicos y mas utilizados generalmente: Byte, Integer, Long, Single, Double y String. Salu2... P.D.: Me he fijado que tu ejemplo utiliza la instruccion GoTo ![]() Edited by: [EX3]
__________________
Cada vez que se alinean los planetas me paso de visita por el foro ![]() dx_lib32: Programa juegos en Visual Basic 6.0 y Visual Basic .NET con la potencia de DirectX 8.1 Version 2.2.0 final publicada |
|
|||
|
Pues si tu sentencia es mas reducida y ps no kritikes la forma de programar de los demas y kritikas k el usa el go to y tu tambien lo usas
kosa k me da a entender k nada mas kopiaste y pegaste va, grax y bye
|
|
||||
|
Cita:
uso de Goto en mitad de un procedimiento pudiendo hacer codigo limpio con sentencias de bucle? Veo que hablamos por hablar, por que de idea denotas tener poca (la misma que escribiendo) y si, critico cuando esa critica puede ser constructiva y no para soltar tonterias para tratar de ofender como tu pretendes. Conoce mas a la persona a la que te dirijes y despues me vuelves con lo de 'copiar y pegar', que se cree el ladron que todos son de su condicion ![]()
__________________
Cada vez que se alinean los planetas me paso de visita por el foro ![]() dx_lib32: Programa juegos en Visual Basic 6.0 y Visual Basic .NET con la potencia de DirectX 8.1 Version 2.2.0 final publicada |
|
|||
|
Perdon por lo que voy a decir pero es un pendejo MxZeroCool por que ni sabe a quien se dirije, y ni siquiera sabe de visual basic no se que hacia aqui debio de estar buscando porno y se topo el wey con una pagina como esta y como hay personas que no tienen nada que hacer mas que observaciones estupidas ps ahi tienen un claro ejemplo por favor no contestes si no es para decir algo que tenga sentido!
__________________
"Yo solo se que entre mas creo saber mas dudas tengo" Pero eso es lo hermoso del conocimiento "El Aprehender" |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| SQL metodo DELETE | Guests | Visual Basic 6.0 | 4 | 30-Jul-2009 04:11 |
| método FindFirst de VB | tasslehoff06 | Bases de datos, ADO , ADO.NET | 0 | 11-Oct-2008 04:55 |
| Metodo Dispose() | billwayne | Visual Basic .NET | 5 | 13-Oct-2006 01:30 |
| Metodo Open | Guests | Visual Basic 6.0 | 0 | 05-Jun-2006 22:50 |
| iconos de ordenacion en flexgrid | Beatriz2006 | Visual Basic 6.0 | 2 | 09-Apr-2006 12:57 |