Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Algoritmo di ordinamento s

    Ragazzi qualcuno sa dimri perché questo codice non funziona?
    dovrebbe ordinare un array a partire dalla posizione data
    codice:
    public class OrdinaArray {  	 	public static void main(String[] args) { 		int[] arr= {3,5,1,2,4};  	ordina(arr,arr.length); 	System.out.print(arr); 	}  	public static void ordina(int[] arr, int pos) 	{ 		if( arr != null && pos>0 && pos< arr.length  ) 		{ 			ordina(arr, pos-1); 			int i=0; 			while(i<pos){                   //indeterminata 				if(i<pos && arr[pos] >= arr[i]) 				i++; 			}   			 			int temp = arr[pos]; 			for(int j=pos; j>i; j++) // determinata 			{ 				if(arr[j]<arr[j-1]){ 				temp= arr[j]; 					arr[j] = arr[j-1];} 			   arr[j-1]=temp; 			} 		} 		 		 	} }

    Vi ringrazio in anticipo

  2. #2
    L'errore è nel primo if del metodo ordina (if (arr != null && pos > 0 && pos < arr.length)).
    Pos non è minore di arr.length in quanto invochi il metodo (ordina(arr, arr.length)) passando la lunghezza dell'array.

  3. #3
    Quindi come andrebbe modoficato?

  4. #4
    Bè andrebbe modificato tutto il metodo in quanto anche modificando quell' if non funzionerebbe in quanto l'algoritmo implementato e sbagliato

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.