Avatar billede Slettet bruger
21. maj 2001 - 11:28 Der er 5 kommentarer og
1 løsning

Største og mindste tal i tabel??

Jeg har en tabel med 20 indtastede elementer. Jeg vil gerne have at de bliver udskrevet sorteret med største tal først, og bagefter at den udregner det største og det mindste tal. Help!!!
Avatar billede ricki Nybegynder
21. maj 2001 - 11:32 #1
Hvilken type tabel er det? En JTable, 2-dimentionelt array eller en database-tabel?
Avatar billede Slettet bruger
21. maj 2001 - 11:37 #2
2-dimensionel tabel

array [] int = new int[20];
Avatar billede logical Nybegynder
21. maj 2001 - 11:46 #3
Den hurtigste måde at sortere et int array er:

import java.util.*;

..
int[] arr = new int[20];

..

// Sorterer arrayet i naturlig stigende rækkefølge
Arrays.sort(arr);

int min = arr[0];
int max = arr[arr.length-1];
for (int i = length-1 ; i >= 0 ; i++) {
  // Vend rækkefølgen til faldende
  System.out.println(arr[i]);
}
Avatar billede ricki Nybegynder
21. maj 2001 - 11:49 #4
Det du (næsten) skriver der at da bare et 1-dimensionel array. -du er vist kommet til at bytte om på int og array...
-Sådan et er jo ganske simpelt at sortere:
java.util.Arrays.sort(array);

Det skulle klare alle skærene.... den sortere så det mindste tal står først og det største sidst.
Avatar billede Slettet bruger
21. maj 2001 - 12:33 #5
Ok, det er et 1-dimensionelt array, men der er stadig probs. Af de 20 tal der er indtastet skal den sige hvilket er det største, men den skal også sige hvilket elementnr det største tal ligger i, og så er det ikke nok bare at sortere den. Hvad gør jeg?
Avatar billede logical Nybegynder
21. maj 2001 - 12:43 #6
Du kan rette det til, så du gemmer det oprindelige array, og genfinder indeks i dem efter en sortering. Så skal det se sådan ud:

int[] arr = new int[20]; // Original array

int[] sorter = (int[]) arr.clone();

Array.sort(sorter);

int maxValue = sorter[sorter.length - 1];
int minValue = sorter[0];

int minPos = findPos(arr, minValue);
int maxPos = findPos(arr, maxValue);

// Hvor findPos er følgende metode:
int findPos(int[] arr, int value) {
  // Find first index with value..
  for (int i == 0 ; i < arr.length ; i++) {
    if (arr[i] == value) return i;  // this is first index
  }
  return -1; // if not found
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester