Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    43

    ordinamento colonna matrice

    /*Scrivere un metodo che prenda in input un array bidimensionale A di long, e restituisca un array A’
    ottenuto da A ordinando in senso crescente gli elementi in ogni singola colonna di indice dispari.
    Es.: Input : [(2,6,4), (1,9,0), (3,7,7), (5,8,5)], Output : [(2,6,4), (1,7,0), (3,8,7), (5,9,5)].*/
    codice:
    class quindici{
    	public static long[][]quindici(long[][]a){
    	
    		long [][]b=new long[a.length][a.length];
    		for (int i=0;i<a.length;i++)
    		{
    			for (int j=0,p=1;p<a.length&&j<a[i].length;j=j+2,p++)
    			{b[i][j]=a[i][j];
    				for(int k=0,s=0;s<a.length-1&&k<a.length;k++,s++)
    				{ 
    					if(a[j][s]>a[j][s+1])
    					{
    						long swap=a[j][s];
    						a[j][s]=a[j][s+1];
    						a[j][s+1]=swap;
    						
    					}
    				}
    					
    				
    			}
    		}
    	return b;
    	}
    }
    
    
    
    public class quindicesimo
    {
    	public static void main (String args[])
    	{
    		long [][]a={{3,2,3,5},
    				  {7,8,4,8},
    				  {3,5,7,9},
    				  {1,6,9,3}};
    				    
    				    
    	        long [][]b=quindici.quindici(a);
    	for(int i=0;i<b.length;i++)
    				    { for(int j=0;j<b[i].length;j++)
    					    {
    						    System.out.print(b[i][j]+"\t");
    					    }System.out.println("     ");
    				      }
    			      }
    		      }
    non riesco a risolverlo il meglio che sono riuscito a fare è isolare le colonne che non devo ordinare!!

  2. #2
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    accetta un consiglio: lascia perdere java per il momento.
    Scrivi solo lo pseudocodice nel modo meno formale che vuoi, ma in modo che sia chiaro.

    Sto cercando di capire cosa possano significare i cicli di for, ma ti posso garantire che sono particolarmente oscuri e incomprensibili. Non metto in dubbio che possano anche funzionare, ma non è questo il genere di codice che vorrei avere tra le mani se dovessi lavorarci sopra.

    Ti do anche un consiglio che può aiutarti a fare le cose con più ordine:
    a[i][j] è una cella della matrice.
    a[][] è una matrice, cioè un vettore di vettori
    a[i] è una riga o una colonna? Io l'ho sempre vista come una riga, mi pare che tu la veda come una colonna e visto che devi ordinare gli elementi delle colonne dispari, ci si semplifica molto la vita a considerarla una colonna.

    Per quale motivo questa premessa? Immagina di avere un algoritmo che ordina un vettore di numeri. Tu devi ordinare colonne, giusto? Che sono vettori di numeri. Quindi puoi usare benissimo la funzione che ordina vettori. Tu gli passi la colonna, lui la ordina e te la ritorna indietro. Gli devi solo passare le colonne dispari e il gioco è fatto.

    Spero che questo spunto ti possa bastare.
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    43
    infatti è quello che volevo fare io!ma sono alle prime armi e non ho la minima idea di come scrivere il codice è questo il problema !! il fatto è che ci sono troppi cicli e mi confondo!! se potresti postarmi un esempio di come si potrebbe fare in modo da capire come funziona te ne sarei grato.

  4. #4
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    UFFA!!!! Ma quanto tempo hai riflettuto su quello che ti ho scritto?

    1. Crea la matrice come vettore di colonne.

    Questa è la matrice

    | a11 a12 a13 |
    | a21 a22 a23 |
    | a31 a32 a33 |


    Questa è la matrice come vettore di righe:
    long [][] a = new long [][3];
    a[0] = {a11, 12, a13};
    a[1] = {a21, 22, a23};
    a[2] = {a31, 32, a33};

    Questa è la matrice come vettore di colonna:
    long [][] a = new long [][3];
    a[0] = {a11, 21, a31};
    a[1] = {a12, 22, a32};
    a[2] = {a13, 23, a33};

    2. per ogni colonna della matrice, se la colonna è dispari, ordinala
    codice:
    for (int j=0; j<a.length; j++)
    {
      if ( (j%2)!=0 )
      {
        ordina(a[j]);
      }
    }
    3. scrivi una funzione ordina che riceve come parametro un vettore di numeri e lo ordina.

    4. non c'è altro.
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    43
    qualcuno mi potrebbe spiegare come si fa a concatenare le stringhe di una colonna?non riesco a capire come si saltano le locazioni mancanti in un array frastagliato bidimensionale!!

  6. #6
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    qualcuno mi potrebbe spiegare come si fa a concatenare le stringhe di una colonna
    Eh?????

    non riesco a capire come si saltano le locazioni mancanti in un array frastagliato bidimensionale!!
    Ora si intravede un po' meglio il problema... però:
    1. cerca di spiegare meglio cosa intendi per saltare locazioni. Un esempio potrebbe far comodo.
    2. apri un nuovo thread che qui sei fuori tema.
    3. prima di aprire il thread consulta questo: java array tutorial
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

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.