Avatar billede affekatz Nybegynder
27. september 2003 - 21:47 Der er 9 kommentarer og
1 løsning

Søgning i array HJÆLP

Jeg skal søge efter en værdi i et stort 2d array på ca. 15x15 hvordan gør man det ?

Jeg har været ved at kikke på binarySearch, men så skal arrayen være sorteret og det er jeg ikke interesseret i
Avatar billede arne_v Ekspert
27. september 2003 - 21:50 #1
En dobbelt for løkke.
Avatar billede arne_v Ekspert
27. september 2003 - 21:51 #2
for(int i = 0; i < 15; i++) {
  if(int j = 0; j < 15; j++) {
      if(array[i][j]==value) {
          // do something
      }
  }
}
Avatar billede tosssen Nybegynder
27. september 2003 - 21:51 #3
Hvis arrayet ikke er sorteret, så vil jeg umiddelbart mene du er nødt til at kigge hele arrayet igennem element for element, hvilket i værste tilfælde giver 15^2 = 225 sammenligninger. Det er jo ikke så slemt hvis du ikke skal søge i arrayet alt for tit
Avatar billede arne_v Ekspert
27. september 2003 - 21:52 #4
PS: 150 point er for meget for dette spørgsmål. Medmindre jeg har
    misforstået noget.
Avatar billede affekatz Nybegynder
27. september 2003 - 21:56 #5
Jeg skulle bruge hjælp som ikke kunne umiddelbart findes i de 2 bøger jeg har til over 200 kr stykket så 150 point er meget meget billig sluppen
Avatar billede affekatz Nybegynder
27. september 2003 - 22:12 #6
Den er godt nok ikke glad for at kompile den for løkke jeg får 10 fejl
Avatar billede arne_v Ekspert
27. september 2003 - 22:15 #7
Tyrk fejl !

Jeg har skrevet if i stsdetfor for.

Prøv lige med:

for(int i = 0; i < 15; i++) {
  for(int j = 0; j < 15; j++) {
      if(array[i][j]==value) {
          // do something
      }
  }
}

array og value skal naturligvis rettes til efter dit program.
Avatar billede affekatz Nybegynder
27. september 2003 - 22:20 #8
He fedt det virker 100 nu jeg takker
Avatar billede martinbk Nybegynder
28. september 2003 - 06:27 #9
kunne man ikke evt. simplificere det en smule med

for (int i = 0, int j = 0; i < 15;i++,j++) {
  if(array[i][j]==value) {
    // do something
  }
}

skal lige siges jeg er ikke speciel stærk i java, men tænkte bare om det ikke kunne lade sig gøre :-)
Avatar billede arne_v Ekspert
28. september 2003 - 11:08 #10
Det er legalt java men gør noget helt andet end den dobbelt for
løkke.

Den dobbelt for løkke løber alle elementer igennem.

Ovenstående kode løber kun diogonal elementerne igennem.
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