Løsningsforslag - oppgaver i Avsnitt 1.6.5


Oppgave 1

  int n = 10, k = 1;
  int[][] a = new int[n][];

  for (int i = 0; i < n; i++)
  {
    a[i] = new int[n - i];                  // oppretter raden
    for (int j = 0; j < a[i].length; j++)
      a[i][j] = k++;                        // legger inn verdier
  }

  skriv(a,4);                               // skriver ut

Oppgave 2

  int n = 11, k = 1;
  int[][] a = new int[n][];

  if ((n & 1) != 0) a[n/2] = new int[(n+1)/2];  // hvis n er odde

  for (int i = 0; i < n/2; i++)
  {
    a[i] = new int[i + 1];
    a[n-1-i] = new int[i + 1];
  }

  for (int i = 0; i < a.length; i++)
  {
    for (int j = 0; j < a[i].length; j++)
      a[i][j] = k++;
  }

  skriv(a,4); 

Oppgave 3

Tabell.innsettingssortering(a, (x,y) -> y.length - x.length);

Oppgave 4

Tabell.innsettingssortering(a, (x,y) -> x[0] - y[0);