QuickSort in C für NEWBIES..............

Dieses Thema im Forum "Programmieren" wurde erstellt von BratHering, 28. April 2003.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. BratHering

    BratHering Megabyte

    Registriert seit:
    17. Juni 2002
    Beiträge:
    1.382
    hallo freunde.....

    bin grade dabei als C-n00b einen kleinenn QuickSort-Algorithmus zu programmieren....

    so weit bin ich gekommen (siehe unten)...die dickgeschriebenenen dinger sind meine ProblemZonen...

    ...ich bitte um hilfe und ratschläge

    -----------------------------------------------------------------------------------------
    //"http://olli.informatik.uni-oldenburg.de/fpsort/QuickAnimation.html"

    #include <stdio.h>
    #include <stdlib.h>

    void Quicksort( int feld[], int li0, int r0);
    void swap(int feld[], int i, int m);
    <B>void sort(int feld[]);</B>
    void ausgabe(int feld[], int m);

    int main(int argc, char *argv[])
    {
    int feld[10], m;
    int li0, r0;

    if((argc &gt; 1) && (argc &lt; 3))
    {
    printf("D\'OH!\n");
    return 0;
    }

    if(argc &gt; 2)
    {
    for(m = 0; m &lt; (argc - 1); m++)
    {
    feld[m] = atoi(argv[m + 1]);
    }

    li0 = feld[0];
    r0 = feld[m];

    printf("m = %d\n", m);

    ausgabe(feld, m);
    <B>sort();</B>
    ausgabe(feld, m);
    }

    if(argc &lt; 2)
    {
    printf("qsort x y z etc. (max.10)\n");
    return 0;
    }

    return 0;
    }

    void Quicksort( int feld[], int li0, int r0)
    {
    int li = li0;
    int r = r0;
    int mitte;

    if (r0 &gt; li0)
    {
    mitte = feld[(r0+li0)/2];

    while(li &lt;= r)
    {
    while((li0 &lt; r0) && (li0 &lt; mitte))
    li++;

    while((r0&gt;li0) && (r0&gt;mitte))
    r--;

    if (li&lt;= r)
    {
    swap(feld,li,r);
    li++;
    r--;
    }
    }

    if (li0 &lt; r)
    Quicksort(feld, li0, r);

    if (li &lt; r0)
    Quicksort(feld, li, r0);
    }
    }

    void swap(int feld[], int i, int m)
    {
    int temp;
    temp=feld<I>;
    feld<I>=feld[m];
    feld[m]=temp;
    }
    <B>
    void sort(int feld[])
    {
    Quicksort(feld, li0, r0);
    }
    </B>
    void ausgabe(int feld[], int m)
    {
    int i;
    for(i=0; i &lt; m; i++)
    {
    printf("Feld[%d]: = ", i);
    printf("%d\n", feld<I>);
    }
    }
    -----------------------------------------------------------------------------------------

    MFG
    brathering
     
  2. BratHering

    BratHering Megabyte

    Registriert seit:
    17. Juni 2002
    Beiträge:
    1.382
    ok hat sich erledigt... :)

    mfg
    brathering
     
  3. BratHering

    BratHering Megabyte

    Registriert seit:
    17. Juni 2002
    Beiträge:
    1.382
    hier ist es etwas übersichtlicher:

    also das ist die datei....
    http://www.informatik.fh-wiesbaden.de/~mkwas001/LVs/info1/aufg4/aufg4.c

    und aus dieser java datei soll nun der algorithmus so wie er da steht in C übernommen werden...
    http://www.informatik.fh-wiesbaden.de/~mkwas001/LVs/info1/Aufgaben/QSortAlgorithm.java

    hilfe...bin keine leuchte beim programmieren.....

    mfg
    brathering
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen