myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

aufgabe in c -> rekursiver selectionsort

Willkommen

myGully

Links

Forum

 
 
 
Themen-Optionen Ansicht
Prev Vorheriger Beitrag   Nächster Beitrag Next
Ungelesen 10.12.10, 10:44   #1
panade
Anfänger
 
Registriert seit: Aug 2010
Beiträge: 5
Bedankt: 9
panade ist noch neu hier! | 0 Respekt Punkte
Standard aufgabe in c -> rekursiver selectionsort

vorab mein code ist totaler gedanken mist... aber da ich 2 stunden brainfuck betrieben habe würde ich gern wissen wo der fehler ist.

aufgabe war selection sort rein rekursiv lösen.

Code:
#include 


int mini(int *feld, int size){
    int min;

    min=feld[size];

    size=size-1;
    if(size==0){
        return min;
    }
    if(min>feld[size]){
        min=feld[size];
    }
    return mini(feld, size-1);
}

void feldaus(int *feld, int size){
    int i=0;
    for(i;i<7;i++){
        printf("%d. Zahl: %d \n", i, feld[i]);
    }
}

void tausch(int *feld, int i, int j){
    int temp;
    temp=feld[i];
    feld[i]=feld[j];
    feld[j]=temp;
}

int such(int *feld, int size,int min){
    if(feld[size]==min){
        printf("stelle des minimums: %d\n", size);
        return size;
    }
    such(feld, size-1, min);
}

int sort(int *feld,int size){
    int min;
    int s;
    if(size==7){
        size--;
    }
    if(size==0){
        return 0;
    }
    min=mini(feld, size);
    s=such(feld, size, min);
    tausch(feld, s, size);
    sort(feld, size-1);
}



int main(int argc, char* arghv[])
{
    int i=0;
    int size=6;
    int min;
    int s;
    int feld[7];
    for(i;i<7; i++){
        printf("%d. Zahl eingeben: ", i);
        scanf("%d", &feld[i]);
    }
    
    sort(feld, size);
    
    feldaus(feld, size);
    
    return 0;
}
es gibt funktionen
sort-> sortieren
such-> suchen
mini -> minimum im feld finden
tausch -> tausch in dreiecksform

plan war: suche im feld das minimum setze es an das ende vom feld und wiederhole für den felddurchlauf -1 feldstelle

rekkursiv bedeutet in dem zusammenhang weitestgehend es ohne for schleifen und nur durch sich selbst aufrufende funktionen zu realisieren.

witzigster part: sort ruft funktion mini auf mini liefert das minimum sort ruft such auf um die stelle an der das minimum stand zurück zu geben <<<< war das einfachste was mir auf die schnelle einfiel da ich keine lust hatte die minimum suche doppelt rekkursiv zu machen.
panade ist offline   Mit Zitat antworten
 


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:39 Uhr.


Sitemap

().