Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di gokan
    Registrato dal
    Feb 2003
    Messaggi
    262

    [generale]operazione su matrice

    Ciao ragazzi, devo risolvere un problema su una matrice, di fatto non dovrebbe essere compliacto, ma devo trovare un metodo generale per ogni possibilità.
    Praticamente ho una matrice di numeri interi con n>=1 zeri disposti casualmente, io devo fare in modo di spingere su questi zeri (in maniera da farli mettere nella parte alta della matrice). Faccio un esempio.

    codice:
    1 2 3 2 1          1 0 0 2 1
    5 0 0 3 5 diventa  5 0 0 3 5
    5 0 0 3 5          5 2 3 3 5
    1 2 3 2 1          1 2 3 2 1
    Come vedete ho ricopiato gli elementi [2 3] nella 4° riga facendo risalire gli zeri.

    Altro esempio:
    codice:
    1 2 3 2 1          1 0 0 2 1
    5 3 4 2 1 diventa  5 0 0 2 1
    5 0 0 3 5          5 2 3 3 5
    1 0 0 2 1          1 3 4 2 1
    Spero di essermi spiegato, anche una mezza idea va bene, in pseudo-linguaggio.

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    A ciascuna colonna della matrice applicherei (in java) il metodo

    codice:
      int[] order(int[] a) {
        int[] b = new int[a.length];
        int zero = 0;
        int nonzero = a.length-1;
        for (int i= a.length - 1; i >= 0; i--) {
          if (a[i] == 0) {
            b[zero] = 0;
            zero++;
          }
          else {
            b[nonzero]=a[i];
            nonzero--;
          }
        }
        return b;
      }
    Che mi ritorna la colonna ordinata secondo la tua necessità.
    Saluti.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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.