Sto studiando malloc e gratis e scrivo il mio malloc gratis. Ma quando leggo dei diversi algoritmi (best fit, first fit, worst fit), allora non dice quale algoritmo è usato per la ricerca e quale viene usato per l'ordinamento.
The best fit strategy is quite simple: first, search through the free list and find chunks of free memory that are as big or bigger than the requested size. Then, return the one that is the smallest in that group of candidates; this is the so called best-fit chunk (it could be called smallest fit too). One pass through the free list is enough to find the correct block to return. The intuition behind best fit is simple: by returning a block that is close to what the user asks, best fit tries to reduce wasted space. However, there is a cost; naive implementations pay a heavy performance penalty when performing an exhaustive search for the correct free block.
Fonte link
Spero che la soluzione migliore utilizzi una sorta di ricerca binaria per trovare la soluzione migliore, è così o qual è la struttura dati della lista gratuita? Se organizziamo la lista libera come un grafico, possiamo effettuare una ricerca binaria per la soluzione migliore e ci vorrebbe O (log n) per trovare la soluzione migliore tra n pezzi. È così, meglio o peggio?