Bitte um Hilfe!! (Programmcode fehlt)
-
Hallo Leute!
Ich bin neu hier und total verzweifelt!
Soll nächste Woche fürs Studium ein Programm abgeben, indem noch die Funktion "quicksort" zu ergänzen ist. Bin leider aber keine Leuchte in C und hab nicht die geringste Ahnung wie ich das angehen soll.
... hab natürlich schon alle verfügbaren Codes rausgesucht, ist aber keiner für mich verwendbar!Vielleicht erbarmt sich ja jemand von euch!

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <unistd.h> #define MAX_LINE_LEN 1024 #define MAX_LINES 1024 #define ERROR_ARRAY_MEM 1 #define ERROR_LINE_TOO_LONG 2 #define ERROR_LINE_MEM 3 #define ERROR_LINE_COUNT 4 static int debug = 1; typedef int (*CMPPTR)(void *, void *); void quicksort(void *a[], int l, int r, CMPPTR cmp) { if (debug) fprintf(stderr, "DEBUG: quicksort(a, %d, %d)\n", l, r); [b]/* hier soll ergänzt werden! */[/b] }Folgende Funktionen sind schon vorhanden:
int strCmp(void *a, void *b); int intCmp(void *a, void *b); int readLines(void ***a, int maxLines, int maxLineLen); void writeLines(void **a, int n); int main(int argc, char *argv[])Ich wäre euch jedenfalls SEHR dankbar!!!
Grüße!
-
Hier werden keine Hausaufgaben gemacht!
Versuch es selbst zu implementieren oder deine Probleme zu formulieren (das ist der erste Schritt zu einer Lösung)...
-
Verwende einfach google! c quicksort.
Erstes Ergebnis.
-
void quicksort(void *a[], int l, int r, CMPPTR cmp) { if (debug) fprintf(stderr, "DEBUG: quicksort(a, %d, %d)\n", l, r); qsort(a, l, r, (int (*)(const void *, const void *))cmp); }*scnr*

-
Ich glaub nicht, dass das der Sinn seiner Hausaufgabe sein soll ^^
-
Eigentlich hatte ich mir nur ein paar Denkanstöße erwartet, und nicht dass mir jemand den Code schreibt!
... bin nämlich etwas überfordert mit diensen Implementierungen z.B:typedef int (*CMPPTR)(void *, void *); int strCmp(void *a, void *b); int intCmp(void *a, void *b);Hab natürlich schon selbst probiert, bin aber kläglich gescheitert!!!

"int strcmp(void *a, void *b)" ist soweit ich rausgefunden hab eine Funktion von <string.h>, was aber ist mit "intcmp"?
"*CMPPTR" ist ein Synonym für diese beiden Funktionen!?
"void qsort(void *base, ....) gibt's in der <stdlib.h>
Nur, die Umsetzung derselben scheint mir nicht so einfach zu sein!... sind im Unterricht nicht so weit gekommen!
-
Lissi schrieb:
...
Hab natürlich schon selbst probiert, bin aber kläglich gescheitert!!!...dann lass doch mal sehen, was Du schon selbst zusammengebracht hast, dann kann man Dir hier auch helfen.
Was bedeutet strcmp() ? mal ein Tipp "cmp" könnte für "compare" stehen und "str" für ... ?
Wofür "int" steht, wirst Du selbst herausbekommen und dann sollte ach intcmp nicht mehr allzu schwer sein.
Skizzier doch einfach mal, wie Du das Sortieren umsetzen willst.... wenn Du sagst "das hatten wir im Unterricht noch nicht", fallen mir spontan 3 Alternativen ein:
- Du hast im Unterricht nicht aufgepasst => Lies Dir nochmal die Aufzeichnungen durch oder such im INet nach passenden Algorithmen.
- Der Lehrer hat's verpennt => Versuche Dein Bestes und knall es dem Lehrer vor den Latz: Er ist schlecht !
- Der Lehrer wollte Euch absichtlich was zum Knobeln geben => Dann kommst Du besser nicht mit einer Cpoy&Paste-Lösung aus dem INet an, sondern zeigst halt, was Du wirklich kannst.
Gruß,
Simon2.