#include template void paterner (WLLU *llu, int inf, int sup) { int ipere = inf; int ifils = ipere * 2; while (ifils <= sup) { if (ifils < sup && ( *(*ips->getelem(ifils+1)) > *(*ips->getelem(ifils)))) ifils++; if (*(*ips->getelem(ifils)) > *(*ips->getelem(ipere))) { // echanger t[ipere] avec t[ifils] llu->swap_element(ipere,ifils); //echanger (&t[ipere][0], &t[ifils][0]); ipere = ifils; ifils = ipere * 2; } else break; } return; } template void heapsort(WLLU *llu, int n) { for(i=n/2; i>=1; i--) paterner(llu, i, n); llu->swap_element(1,n); for (i = n-1; i ; i--) { paterner(llu, 1, k); llu->swap_element(1,i); } return; }