Gå til innhold

Tabell sortering ved overføring


Anbefalte innlegg

Hei!

Lurte på om noen kunne hjelpe meg med dette problemet...

 

for (I=0;I<10;I++)                    
 {
 Min = 0;                                   //(Min er av typt int)
 for (K=1;K<10;K++)         //Men hvorfor skal K settes til ? Det går med 0 også
   if (Tab[K] < Tab[Min])      //(K er av type int, Tab også)
     Min = K;
 Nytab[I] =  Tab[Min];      // Nytab også av type int...
 Tab[Min] = INT_MAX;      //Her står det at verdien strykes.(Blir satt den høyeste
                                      //int verdien som går. Men den strykes da ikke??

 

Setter stor pris på om noen svarer på dette inlegget, dette irriterer meg mer og mer for hver dag som går :thumbdown: ....

 

På forhånd takk...

Endret av zirener
Lenke til kommentar
Videoannonse
Annonse
Verdien strykes implisitt, ved at en verdi av INT_MAX aldi vil være minst i en sammenligning mellom verdier av typen int (dette er sortering i stigende rekkefølge eller hva).

sorteres i stigende rekkefølge, helt riktig.

Det jeg ikke skjønner er hvorfor verdien settes til 1 i den for løkka, som sagt funka det også med å sette den til 0....

Endret av zirener
Lenke til kommentar
Verdien strykes implisitt, ved at en verdi av INT_MAX aldi vil være minst i en sammenligning mellom verdier av typen int (dette er sortering i stigende rekkefølge eller hva).

sorteres i stigende rekkefølge, helt riktig.

Det jeg ikke skjønner er hvorfor verdien settes til 1 i den for løkka, som sagt funka det også med å sette den til 0....

Det er en "optimalisering". Du setter Min=0 i linjen ovenfor og du trenger jo ikke å sammenligne element 0 med element 0 (med seg selv). Derfor begynner du på element 1 i stedet.

 

Dvs. når du setter K=0 vil du ha følgende sammenligning (byttet ut K og Min med sine respektive verdier):

if (Tab[0] < Tab[0]) // if (Tab[K] < Tab[Min])

 

Som du ser er det ganske meningsløst.

Lenke til kommentar
Det er en "optimalisering". Du setter Min=0 i linjen ovenfor og du trenger jo ikke å sammenligne element 0 med element 0 (med seg selv). Derfor begynner du på element 1 i stedet.

 

Dvs. når du setter K=0 vil du ha følgende sammenligning (byttet ut K og Min med sine respektive verdier):

if (Tab[0] < Tab[0]) // if (Tab[K] < Tab[Min])

 

Som du ser er det ganske meningsløst

Tusen takk :thumbs:

Nå tror jeg at jeg skjønner det, det var jo ikke så vansklig som jeg syns det var :w00t:

Endret av zirener
Lenke til kommentar
  • 3 år senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...