Metodo di ricorsione

di il
4 risposte

Metodo di ricorsione

Scrivere un metodo ricorsivo
static boolean isConstant (int[] a, int inizio, int fine)
in Java, che preso come parametro un array di numeri interi restituisce true se il suo sottoarray che inizia alla posizione inizio e termina alla posizione fine contiene in tutte le sue posizioni lo stesso valore, false altrimenti.
Il metodo deve sfruttare la tecnica divide et impera e non deve far uso di comandi iteraivi.
Se la porzione di array su cui ci si concentra è vuota o a vale null, il metodo deve restituire true.

chi mi puo dare una mano

4 Risposte

  • Re: Metodo di ricorsione

    Tu come l'hai impostata?
    Posta la tua soluzione e la discutiamo.
  • Re: Metodo di ricorsione

    Public class MainClass {

    public static void main(String[] args) {
    int[] A={1,2,3,4,5,6,7,8,9,10};
    System.out.println(isOrdered(A,1,7));
    }



    static boolean isOrdered (int[] a, int inizio, int fine){
    if(a==null || inizio>fine || inizio>a.length) {return true;}
    if(inizio==fine){if (a[inizio]<=a[inizio+1]) {return true;}
    else {return false;}
    }
    int m=(inizio+fine)/2;
    if (a[m]>=a[m+1]){return false;}
    boolean ordinatoSx=isOrdered (a, inizio,m);
    boolean ordinatoDx=isOrdered (a, m+1,fine-1);
    if(ordinatoSx==true && ordinatoDx==true ){return true;}
    else {return false;}
    }
    }
  • Re: Metodo di ricorsione

    
    static boolean isOrdered (int[] a, int inizio, int fine){
       if(a==null || inizio>fine || inizio>a.length) {return true;} //controllo
       if(inizio==fine){
          if(a[inizio]==a[fine])
             return true; // Se le due celle sono uguali ritorna true altrimenti false
          else
             return false;
       } // Passo elementare
    
       int m=(inizio+fine)/2;
       boolean ordinatoSx=isOrdered (a, inizio,m); // passo ricorsivo
       boolean ordinatoDx=isOrdered (a, m+1,fine);  // passo ricorsivo
       return (ordinatoSx && ordinatoDx); // Se saranno tutte e due true ritornerà true altrimenti false
    }
    
    Te l'ho corretta al volo e commentata, così dovrebbe funzionare, provala e fammi sapere.
  • Re: Metodo di ricorsione

    Sisi funziona grazie mille
Devi accedere o registrarti per scrivere nel forum
4 risposte