Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/03/2006, 06:13
kalandas
 
Fecha de Ingreso: enero-2006
Ubicación: Madrid
Mensajes: 148
Antigüedad: 19 años, 3 meses
Puntos: 0
Ordenar de mayor a menor

Hola:
tengo un problemilla a la hora de ordenar un vector, tengo dos vectores uno numérico y otro de palabras(string), estos dos vectores están relacionados entre si de manera que la palabra de la posicion i ha saldio tantas veces como ponga en el vector numérico en la misma posicion i, es decir:
palabra(0)-ha salido veces(0)
palabra(1)-ha salido veces(1)
palabra(2)-ha salido veces(2)
el problema que tengo es que no se como hacer para que me ordene el numero de veces que sala cada palabra(es decir, ordenar el vector numérico no es un problema pues es sencillo), de manera que luego pueda mostrar de mayor a menor el numero de veces que sale cada palabra. El programa que he hecho es este, pero no se porque a veces me sale alguna palabra duplicada sin realemente estarlo, si no me explicado suficientemente bien diganmelo y lo volveré a explicar para hacerme en tendre.
El vector de palabras(string) es el llamado todas_palabras, y el numero de veces que sale es cont_veces
Código:
function palPrinc (todas_palabras, cont_veces)
	dim indice_palabras_princ()	'Almaceno en este vector los índices dentro de cont_veces donde se encuentran las 5 palabras que mas aparecen
	dim vector()
	
	for i=1 to ubound(cont_veces)
		redim preserve vector(i)
		vector(i) = cont_veces(i)
	next
	k=1
	For i =1  To UBound(cont_veces)
		MaxVal = cont_veces(i)
		MaxIndex = i

		For j = i To ubound(cont_veces)
			If cont_veces(j) > MaxVal Then
				MaxVal = cont_veces(j)
				MaxIndex = j
			End If
		Next
   		aux=cont_veces(i)
		cont_veces(i)=cont_veces(MaxIndex)
		cont_veces(MaxIndex)=aux
		redim preserve indice_palabras_princ(i)
		indice_palabras_princ(i)=MaxIndex
	Next 
	for j=1 to ubound(indice_palabras_princ)
		Response.Write(todas_palabras(indice_palabras_princ(j))&"-"&vector(indice_palabras_princ(j))&"<br>")
	next
	i=1
end function
Muchas gracias ciao.