[Solar-general] Liberando código QBASIC... - Quick Sort

Pablo De Napoli pdenapo en yahoo.com
Vie Oct 29 17:13:28 CEST 2004


> | Resulta que para ordenar un archivo maestro bastante grande, no se me
> | ocurrió nada mejor que utilizar una versión modificada del algoritmo
> | `QuickSort' que viene junto a los ejemplos distribuídos por Microsoft
> | junto a su compilador (aclaro, paqué la licencia del producto cuando lo
> | empecé a usar `comercialmente' allá  por 1992). La modificación consiste
> | en que la rutina deja de trabajar "swapeando" los elementos de un
> | arreglo en memoria, para que en cambio lo haga con los registros en
> | disco accediendo al archivo en forma aleatoria. De esta forma, el
> | archivo puede ser tan grande como  el espacio disponible en disco, o el
> | número de registros más grande que maneje QB, lo que resulte primero.
> |
> |
> | Mi duda entonces: al incluir en el código GPL este pequeño procedimiento
> | (c) Microsoft, ¿que sucede con el producto final? ¿Sigue siendo GPL? ¿Es
> | un GPL "impuro"? ¿Debo excluir ese procedimiento? Obviamente podría
> | haber re-escrito el algoritmo desde cero, pero también estoy seguro de
> | que terminaría en algo muy similar: cuando estudiaba algoritmos de
> | ordenamiento había estudiado particularmente este, al punto que recordé
> | que existía casi 15 años después y lo fuí a buscar para evitar tipearlo
> | otra vez. No olvidar, el código lo recibí de M$ previo depósito de mi
> | óbolo :-)
> |

No podés incluir código de otros en tu producto y licenciarlo (bajo ninguna licencia,
incluida la GPL) salvo que la licencia bajo la cual vos recibiste ese código te
habilite a hacerlo, sospecho que la licencia del código de M$ no debe hacerlo.

El algoritmo QuickSort es un un algoritmo estandar de la informática. dearrollado
por C. Hoare, ver
 
Hoare, C. A. R. "Partition: Algorithm 63," "Quicksort: Algorithm 64," and "Find:
Algorithm 65." Comm. ACM 4, 321-322, 1961

http://en.wikipedia.org/wiki/Quick_sort

(siempre la Wikipedia es el lugar correcto para ir a buscar algo =)

sugiero que escribas tu propia implementación desde cero, sin mirar el código de
Microsoft. En el articulo de wikipedia hay implementaciones en varios lenguajes, 
y se discuten optimizaciones posibles.

Un saludo,
Pablo De Napoli







		
__________________________________
Do you Yahoo!?
Yahoo! Mail - Helps protect you from nasty viruses.
http://promotions.yahoo.com/new_mail



Más información sobre la lista de distribución Solar-general