Ordinamenti evoluti

Gli ordinamenti evoluti utilizzano degli algoritmi con complessità minima.

Merge sort

Utilizza la funzione merge() che realizza la fusione di 2 sotto array già ordinati

void mergeSort(double[] v, int inf, int sup)
{
   if(inf < sup)
   {
      int medio=(inf+sup)/2;
      mergeSort(v, inf, medio       );
      mergeSort(v     , medio+1, sup);
      merge    (v, inf, medio  , sup);
   }
}

Quick sort

...
...

Nota

Per controllare la bontà degli algoritmi puoi confrontare le loro prestazione con il metodo predefinito java.util.Arrays.sort()