Pro-Linux.de

Pro-Linux

Pro-Linux Diskussions- und Hilfeforum
Aktuelle Zeit: 21. Nov 2018 2:26

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: funktion umschreiben
BeitragVerfasst: 08. Jun 2007 17:10 
hi,
wie bekomme ich es hin, dass die Funktion double-Werte sortiert und nicht nur int-Werte?
int zu double machen funktioniert nicht.

danke im Voraus.
Code:
void quicksort(int feld[MAX], int left, int right) {
    int rightpos = feld[right];
    int l = left;
    int r = right;
    
    if&#40;left < right&#41; &#123;
        do &#123;
            while&#40;feld&#91;l&#93; < rightpos&#41; l++;
            while&#40;feld&#91;r&#93; > rightpos&#41; r--;
            
            if &#40;l <= r&#41; &#123;
                int swap = feld&#91;l&#93;;
                feld&#91;l&#93; = feld&#91;r&#93;;
                feld&#91;r&#93; = swap;
                l++;
                r--;
            &#125;
        &#125;
        while&#40;l <= r&#41;;
        quicksort&#40;feld, left, r&#41;;
        quicksort&#40;feld, l, right&#41;;
    &#125;
&#125;


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 09. Jun 2007 10:20 
Offline
prolinux-forum-admin
Benutzeravatar

Registriert: 05. Mai 2004 7:35
Beiträge: 1238
Du musst einfach alle int durch double ersetzen (außer die, die zur Indizierung des Arrays fungieren). Übrigens solltest du das "double swap" nicht in der while-Schleife deklarieren - dann wird sie immer wieder neu deklariert.
Code:
void quicksort&#40;double feld&#91;MAX&#93;, int left, int right&#41; &#123;
    double rightpos = feld&#91;right&#93;;
    int l = left;
    int r = right;
   
    if&#40;left < right&#41; &#123;
        do &#123;
            while&#40;feld&#91;l&#93; < rightpos&#41; l++;
            while&#40;feld&#91;r&#93; > rightpos&#41; r--;
           
            if &#40;l <= r&#41; &#123;
                double swap = feld&#91;l&#93;;
                feld&#91;l&#93; = feld&#91;r&#93;;
                feld&#91;r&#93; = swap;
                l++;
                r--;
            &#125;
        &#125;
        while&#40;l <= r&#41;;
        quicksort&#40;feld, left, r&#41;;
        quicksort&#40;feld, l, right&#41;;
    &#125;
&#125; 


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 09. Jun 2007 10:22 
Außerdem musst du alles als "char" deklarieren und eine Funktion "string zufallszahl" implementieren.

Gruß,
das Quietscheentchen


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 09. Jun 2007 12:26 
Danke für den Tipp.
Das Programm bricht aber immer noch mit "Speicherzugriffsfehler" ab.

Habe keine Ahnung warum.


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 4 Beiträge ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de