QuickBasic - Ordenar vectores en metodo shel o Quickshort

   
Vista:

Ordenar vectores en metodo shel o Quickshort

Publicado por Antonio Godoy (1 intervención) el 12/08/2008 16:42:23
Buenas tardes, necesito ayuda sobre ordenamiento de vectores con quickbasic, tengo un trabajo y me pide ordenar en metodo shell o quickshort, y no me a podido salir y lo que mas veo es en metodo burbuja, alquien me podria ayudar le voy a agradecer mucho. saludos. y muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
información
Otras secciones de LWP con contenido de QuickBasic
- Cursos de QuickBasic
información
Cursos y Temas de QuickBasic
- Manual de Quick Basic
- Tutorial de QuickBasic
- Curso de introducción a la programación con QBasic

Ordenar vectores en metodo shel o Quickshort

Publicado por Opresion (15 intervenciones) el 15/08/2008 06:21:04
En la Url de arriba hallas 20 modos diferentes de hacer el QuickSort; aquí te pongo otro mas sencillo que viene en modo se SUBrutina.

DEFINT A-Z
DECLARE SUB quiksort (Lower%, Upper%)
'''QuickSort, iterative rather than recursive
'''uses DINDEX$() as the array to be sorted.
'''you may change DINDEX$ to whatever. as long as
'''it is a string attay

SUB quiksort (Lower%, Upper%) STATIC

'to sort strings
'past this into the sub you define then
'replace the sub line with the above
'dindex$ is the array containing items to be sorted
SHARED dindex$()
'''QuickSort, iterative rather than recursive
''based on an idea by Cornel Huth
REDIM Lo%(2000)
REDIM Hi%(2000)
sp% = 0
Lo%(sp%) = Lower%
Hi%(sp%) = Upper%
sp% = 1
DO
sp% = sp% - 1
Lo% = Lo%(sp%)
Hi% = Hi%(sp%)
DO
L% = Lo%
H% = Hi%
M$ = dindex$((Lo% + Hi%) 2)
DO
DO WHILE dindex$(L%) < M$: L% = L% + 1: LOOP
DO WHILE dindex$(H%) > M$: H% = H% - 1: LOOP
IF L% <= H% THEN
SWAP dindex$(L%), dindex$(H%)
L% = L% + 1
H% = H% - 1
END IF
LOOP WHILE L% <= H%
IF H% - Lo% < Hi% - L% THEN
IF L% < Hi% THEN
Lo%(sp%) = L%
Hi%(sp%) = Hi%
sp% = sp% + 1
END IF
Hi% = H%
ELSE
IF Lo% < H% THEN
Lo%(sp%) = Lo%
Hi%(sp%) = H%
sp% = sp% + 1
END IF
Lo% = L%
END IF
LOOP WHILE Lo% < Hi%
LOOP WHILE sp%

END SUB
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ordenar vectores en metodo shel o Quickshort

Publicado por francisco (2 intervenciones) el 28/08/2008 14:18:18
1234567890
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ordenar vectores en metodo shel o Quickshort

Publicado por francisco (2 intervenciones) el 28/08/2008 14:24:20
kjasbhdcghascfh
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar