Seite 1 von 1

Struct Array nach bestimmer Komponente sortieren

Verfasst: Fr 6. Mai 2011, 21:51
von beafraid88
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

Re: Struct Array nach bestimmer Komponente sortieren

Verfasst: So 8. Mai 2011, 16:35
von Christian Bredtmann
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.