[Algoritmi] individuare algoritmo divide et impera

Messaggioda #Fede » 24/09/2019, 10:56

Ciao ragazzi, qualcuno potrebbe aiutarmi con il seguente esercizio?

Progettare un algoritmo basato sulla tecnica divide et impera il cui costo in tempo sia definito dalla relazione di ricorrenza

$ g(n)={ ( 1\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad n<=1 ),( 4g(n/2)+Theta (n^2logn)\quad\quad n > 1 ):} $

Non riesco a capire quale comando utilizzare per ottenere $ Theta (n^2logn) $

Personalmente ho iniziato nel seguente modo:

Codice:
int pippo(int*a, int i, int f){
if(n <= 1)
   return 1;
   else{
   int m=(i+f)/2;
   ...
  }

}



Grazie!
#Fede
Starting Member
Starting Member
 
Messaggio: 20 di 44
Iscritto il: 20/04/2017, 15:33

Re: [Algoritmi] individuare algoritmo divide et impera

Messaggioda Quinzio » 05/10/2019, 13:28

Farei una cosa tipo questo:

Codice:
void function(unsigned int n) {
  if (n > 1) {
    function(n/2);
    function(n/2);
    function(n/2);
    function(n/2);
    for (int i=0; i<n; i++)
      for (int j=0; j<n; j++)
        for (int k=n; k>0; k >>= 1) {
          // un po' di codice qui
        }
  }
}

Quinzio
Cannot live without
Cannot live without
 
Messaggio: 4307 di 10527
Iscritto il: 24/08/2010, 06:50


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite