Pregunta: | 1788 - POR FAVOR INFORMACION SOBRE LOS MÉTODOS DE ORDENACIÓN. |
Autor: | Mauricio Alcántara Méndez |
Deseo información sobre el método de montoculo o head sort.Agradezco de antemano cualquier informacion al respecto. |
Respuesta: | Erwin Villamizar Pérez |
Vea hermano.. aqui le envio la función para ordenar un array de enteros por medio del método de Ordenación llamado HeapSort, pasando como argumento a HeapSort un puntero al vector de enteros, y a la funcion prioridad paso como argumentos: un puntero al vector de enteros, la prioridad en la cual se va a manejar, y la cantidad maxima de datos a ordenar, la cual va disminuyendo.. espero que te sirva..
void heapsort(int *v) { int opcord,i,j,prio,n; opcord=tipo_ord(); prio=(MAX-1)/2; prioridad(v,prio,MAX-1,opcord); prio=MAX-2; n=MAX-2; while(n>=0) { prio=n/2; prioridad(v,prio,n); n=n-1; } } void prioridad(int *v,int prio,int n) { int i,j,t; i=prio+prio; j=i+1; while(prio>=0) { while(j<=(i+2) && j<=n) { if(opcord==1) { if(v[prio] < v[j]) { t=v[j]; v[j]=v[prio]; v[prio]=t; } j=j+1; } else { if(v[prio] > v[j]) { t=v[j]; v[j]=v[prio]; v[prio]=t; } j=j+1; } } prio=prio-1; i=prio+prio; j=i+1; } t=v[n]; v[n]=v[0]; v[0]=t; } |
Respuesta: | Ivan Bravo Sierra |
Esto viene en el libro de "Estructuras de Datos" de Cairó y Guardati editorial Mac Graw Hill pag, 318 |