Struct Array nach bestimmer Komponente sortieren

Moderator: Moderatoren

Antworten
Benutzeravatar
beafraid88
Beiträge: 99
Registriert: Sa 25. Okt 2008, 17:34
Wohnort: Aachen/Düsseldorf/Mönchengladbach

Struct Array nach bestimmer Komponente sortieren

Beitrag von beafraid88 » Fr 6. Mai 2011, 21:51

Hallo Leute,

wie sortiere ich hier die Liste "liste" nach der Komponente Alter, bzw wie übergebe ich diese Liste an die Bubblesort-Funktion?

#include <stdio.h>

void bubblesort(int A[],int l,int r) {

int i,j;
for(i=l;i<r;i++) {
for (j=r;j>i;j--) {
if (A[j-1]<A[j]) exchange(&A[j-1],&A[j]);
}
}
}

void exchange(int* a, int* b) {
int temp=*a;
*a=*b;
*b=temp;
}

typedef struct person {
int alter;
char name[20];
} Person;

Person liste[3];


int main() {

liste[2].alter=3;
liste[2].name="Hans";
liste[1].alter=2;
liste[1].name="Peter";
liste[0].alter=1;
liste[0].name="Thorsten";

bubblesort( ??? )


Danke im Vorauss

Christian Bredtmann
Administrator
Beiträge: 237
Registriert: Mo 10. Mär 2008, 04:09
Wohnort: Aachen
Kontaktdaten:

Re: Struct Array nach bestimmer Komponente sortieren

Beitrag von Christian Bredtmann » So 8. Mai 2011, 16:35

Ich denke, dass die einfachste und schnellste Lösung wäre, wenn du eine
speziell angepasste Bubblesort-Funktion schreibst.

Diese vergleicht dann zwar das Alter, tauscht dann aber nicht nur die
Alterszahlen aus, sondern das komplette struct.

Antworten

Zurück zu „Info I“