004
05.11.2005, 17:04 Uhr
burton
|
Vielen dank virtual! Qsort is bei meinen Programm nur eine Funktion genauso wie Vergleiche!
Ich stell nun mal das on, was ich bis jetzt habe, bei dem qsort Bsp:
C++: |
#include <stdio.h> #include <string.h> #include <stdlib.h>
typedef int (*tFuncInt)(int); typedef int (*tFuncInt2)(int, int); typedef int * (*tfuncInt2)(int A[]);
typedef int (tFunkVoid)(const void*, const void*);
/************************************************************** Modulname: Quicksort **************************************************************/ void QSort_ab(void *A, int anzahl, int size, tFunkVoid vergleich) { int i,j; char *temp = new char[size]; char *L = (char*)A;
for (i=anzahl-1; i>0; i--) { for (j=1; j<i; j++) { if (vergleich(L+j*size, L+(j-1)*size) > 0) { memcpy(temp, L+j*size, size); memcpy(L+j*size, L+(j-1)*size, size); memcpy(L+(j-1)*size, temp, size); } } } delete[] temp; }
/************************************************************** Modulname: Vergleich **************************************************************/ int Vergleich(const void *p1, const void *p2) { char **A = (char**)p1; char **B = (char**)p2;
return strcmp(*A, *B); }
/************************************************************** Modulname: Hauptprogramm Zweck: Hier werden die Strings zuerst umsortiert und danach werden sie sortiert ausgegeben! **************************************************************/ void main() { int i; char *name[5] = {"Maier", "Roger", "Dekilla", "Mustafa", "Neon"};
printf("----------------------------------------------\n"); printf("Hier werden die Strings unsortiert ausgegeben\n"); printf("----------------------------------------------\n");
for (i=0; i<5; i++) printf("%s\n", name[i]); printf("\n\n");
QSort_ab(name, 6, sizeof(char*), Vergleich); printf("----------------------------------------------\n"); printf("Hier werden die Strings absteigend sortiert\n"); printf("----------------------------------------------\n");
for (i=0; i<5; i++) printf("%s\n", name[i]); printf("\n");
}
|
Es funktionier auch! Nur muss ich jetzt noch ein bsearch einbauen! Und hier hab ich wirkli NULL Ahnung!
Bitte um Hilfe -- bUrToN RuLeZ |