|  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> Java Programming >> Content

    Hur kan jag implementera kolumnens stora traversal i Java?

    Kolumn-major traversal betyder åtkomst till element i en 2D-matris (eller matris) kolumn efter kolumn, istället för standard-för-rad-raden (rad-major) ordning. Här är några sätt att implementera kolumn-major traversal i Java:

    Metod 1:kapslade slingor

    Detta är den mest enkla metoden. Vi itererar först genom kolumner och sedan rader i varje kolumn.

    `` `Java

    public class ColumnmaJortraversal {

    public static void traversecolumnmajor (int [] [] matris) {

    int -rader =matris.längd;

    int cols =matris [0] .längd; // antar rektangulär matris

    för (int j =0; j för (int i =0; i System.out.print (matris [i] [j] + "");

    }

    System.out.println (); // newline efter varje kolumn

    }

    }

    public static void main (String [] args) {

    int [] [] matris ={

    {1, 2, 3},

    {4, 5, 6},

    {7, 8, 9}

    };

    System.out.println ("Column-Major traversal:");

    traversecolumnmajor (matris);

    }

    }

    `` `

    Detta kommer att mata ut:

    `` `

    Kolumn-major traversal:

    1 4 7

    2 5 8

    3 6 9

    `` `

    Metod 2:Enkel slinga med beräkning (effektivare för stora matriser)

    Denna metod undviker kapslade slingor, vilket potentiellt erbjuder bättre prestanda för mycket stora matriser genom att minska slingans omkostnader. Det beräknar indexet direkt.

    `` `Java

    public class ColumnmaJortraversaleFicicient {

    public static void traversecolumnmajorefficient (int [] [] matris) {

    int -rader =matris.längd;

    int cols =matris [0] .längd;

    för (int k =0; k int i =k % rader; // radindex

    int j =k / rader; // kolumnindex

    System.out.print (matris [i] [j] + "");

    if ((k + 1) % rader ==0) {

    System.out.println (); // newline efter varje kolumn

    }

    }

    }

    public static void main (String [] args) {

    int [] [] matris ={

    {1, 2, 3},

    {4, 5, 6},

    {7, 8, 9}

    };

    System.out.println ("Kolumn-major traversal (effektiv):");

    traversecolumnmajorefficient (matris);

    }

    }

    `` `

    Detta ger samma utgång som metod 1. Effektivitetsförstärkningen är mer märkbar med betydligt större matriser.

    Viktiga överväganden:

    * rektangulära matriser: Båda metoderna antar en rektangulär matris (alla rader har samma antal kolumner). Du måste lägga till felhantering (t.ex. kontrollera "Matrix [i] .längd" för varje rad) om du har att göra med matriser av oregelbundna former.

    * Jagged matriser: Om du har en taggad matris (där rader har olika antal kolumner) fungerar inte en-sling-metoden (metod 2) direkt. Du måste anpassa den för att hantera de olika kolumnantalerna per rad. Metod 1 skulle lättare anpassas till detta fall.

    * Minneslayout: Medan du kan * korsa * en matris i kolumn-major-ordning, lagras Javas matriser i minnet med hjälp av rad-majororder. Detta innebär att kolumn-major traversal inte kommer att vara lika cache-effektiv som rad-major traversal.

    Välj den metod som bäst passar dina behov och storleken på dina matriser. I de flesta fall är metod 1 lättare att förstå och underhålla, medan metod 2 kan ge en prestationsfördel för extremt stora matriser. Kom ihåg att hantera potentiella undantag, särskilt med oregelbundna matriser.

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur kan man överföra BLOB -filer till en databas Serv…
    ·Hur konvertera en int till en JTextField i Java
    ·Java String Längd & Function
    ·Hur du ändrar bakgrund JFrame i Swing
    ·Inaktivera en Java Undantag
    ·Definition av Garbage Collection i Java
    ·Hur man använder JCreator Med en Android
    ·Jämförelse av Java & Net Platforms
    ·Kodning i Java
    ·Så installerar du den mest aktuella Java
    Utvalda artiklarna
    ·Hur man skapar en symbolisk länk med PHP
    ·Vad är betydelsen av tom strängsymbol på programmeri…
    ·Hur man skall fördela en VBS Dataset
    ·Vad är det för datorhårdvara som bearbetar och nollo…
    ·Hur Isolera nivå för en anslutning
    ·Hur får man ID för ett objekt i JQuery
    ·Hur att importera ett projekt Into Python Glade
    ·Hur man skriver en rekursiv funktion Index Max
    ·Hur man bygger en mobil app som använder en kamera
    ·Hur man kan integrera en Plottad funktion i Python
    Copyright © Dator Kunskap https://www.dator.xyz