PatrikHMedlem sedan juli 200114 inlägg Hoppas någon har något förslag till detta...
Har en array med 26 "heltalsfack". Vad jag vill göra är att plocka ut de 8 största värdena samt att ha reda på vid vilket index respektive värde hittades.
Kanske ska göra det här med vektorer, men då jag aldrig har använt sådana förrut, så vore det smidigt om det gick att göra med hjälp av arrays.
BeatboxMedlem sedan okt. 20013 217 inlägg Du kan använda dig av Quiksort för att sortera arrayen.
Jag hittade en sida som beskriver detta bra. Kolla på animationen så ser du en visualisering av hur algoritmen fungerar
http://odin.ee.uwa.edu.au/~morris/Year2/PLDS210/qsort.html
// BeatBox
PeWMedlem sedan juni 200010 432 inlägg ...Eller om du vill knacka kod och klura lite själv kan du använda den här funktionen:
void sort(int *t1,const int &len){
bool changed;
do{
changed = false;
for(int i=0;i<len-1;i++){
if(t1[i] > t1[i+1]){
int temp = t1[i];
t1[i]=t1[i+1];
t1[i+1]=temp;
changed = true;
}
}
}while(changed);
}
Den sorterar en godtyckligt stor int array till stigande ordning. Bara att plocka ut de 8 sista talen efter sorteringen. Men den sorterar en array som redan finns så ska du behålla den arrayen intakt får du göra en arbetskopia först, vilket även kan användas om du ska hitta index (genom att t.ex jämföra fälten).
Grov pseudo för vidare implementering:
- kopiera arrayen
- sort(kopian,storleken)
- for (index;index<strlk;index++)
om kopian == arrayen : spara index
... ungefär :)
easMedlem sedan sep. 2001269 inlägg Bouble sort är enklast tycker jag.
Ett exempel:
#include <iostream>
using namespace std;
int main()
{
int lista[5]={0, 3, 7, -2, 9},i ,x, y, temp;
for (x=0; x<4; ++x) {
for (i=0; i<4-x; ++i)
if (lista[i] > lista[i+1]) {
temp=lista[i];
lista[i]=lista[i+1];
lista[i+1]=temp;
}
cout<<x+1<<" =-> ";
for (y=0; y<5; ++y) {
if (lista[y] >= 0) cout<<" ";
cout<<lista[y]<<" ";
}
cout<<endl;
}
return 0;
}
PatrikHMedlem sedan juli 200114 inlägg Tack!
Tack för alla förslag! Använde mig av PeW:s förslag och det fungerade utmärkt, Tack!
PeWMedlem sedan juni 200010 432 inlägg Bra... även min variant är en bubblesort ;)