wofür swap?



  • Hallo,
    ich muss ein "Tauschprogramm" schreiben und weiß auch schon ungefähr was ich da machen muss, aber wofür benutze ich so etwas überhaupt? Wozu wird
    so ein Programm verwendet?

    Danke
    mfg Gira



  • wie meinen?

    du meinst 2 variablen tauschen ihre werte?

    oh das braucht man dauernd, bei sortieralgorithmen zB

    void AuswahlSort(int N, int *PA)
    {
     extern long V, B;
     int I, J, Min, H;
    
     for (I=1; I<N; ++I) {             /* I= 1 (1) N-1 */
        Min=I;
        for (J=I+1; J<=N; ++J) {       /* J= I+1 (1) N */
           if (PA[J] < PA[Min]) Min=J;
                       ++V;
        } /*for*/
     /*BEEEP  hier steht der tausch-algorithmus PA[i] und PA[min] tauschen die werte BEEEP*/               
                    B+=3;
     } /*for*/
    }
    


  • ähh also der steht das jetzt nicht, hab ich weggelassen um dir den spass nicht zu verderben ... :p



  • Wow, danke Dir.
    Jetzt weiss ich endlich warum ich den Mist mache.
    Ich finde es echt faszinierend, dass es Leute gibt, die sich echt damit auskennen. Vielen Dank.



  • lol ... 🙄
    dafür gibts noch nen sortieralgorithmus den du auch nachvollziehen kannst ...
    damit du dich schneller in meine C-sphären aufschwingen kannst:

    bubble-sort:

    void swap(/*BEEEEP*/){
    //PRE:
    //POST: The values stored in x and y are exchanged.
      /*BEEEEP*/
    }
    
    void bubbleSort(double a[], int n){
    //PRE: n = length(a)
    //POST: a[0..n-1] is increasingly sorted.
      int i = n-1;
      bool sorted = false;
      while(!sorted && i > 0){
        sorted = true;
        for(int j=0; j < i; j++){
          if(a[j] > a[j+1]){
            swap(a[j], a[j+1]);
            sorted = false;
          }
        }
        i = i-1;
      }
    }
    


  • Ui, ich bin echt beeindruckt. 😮
    Ich habe versucht es nachzuvollziehen, habe aber dann doch aufgegeben.
    Ich mach das erst seit 3 Monaten und bin froh wenn ich beim compillieren weniger als zehn Fehler habe. 🙂
    Aber ich danke dir trotzdem.Irgendwie werde ich das Kind schon schaukeln

    mfg Gira



  • hier ist das schön erklärt:
    http://www.pronix.de/C/standard_C/c_programmierung_25.shtml#6

    msg Dill (der sich wünscht dass alle frauen so leicht zu beeindrucken wären) 🕶



  • *lol
    Wenn eine Frau die c-Programmierung etwas zu würdigen weiss, wird sie von Deinem Können hin und weg sein.Du hast es fast besser drauf als mein Prof.
    Man darf die Hoffnung nie aufgeben.
    Mal ganz davon abgesehen, dass ich das alles nicht freiwillig mache, finde ich doch ganz allmählig Spaß daran, mich durch irgendwelche Source Codes und Header Datein zu quälen.

    P.S. Danke für den Link.
    Wenn ich den Schein bestehe hast Du 50% Mitschuld daran. 😃

    Gira



  • na dann mal viel glück

    ... ich denke es versteht sich von selbst dass mir dann auch ein gerechter teil deines späteren einkommens zukommt



  • :p



  • @dill abers swap lässt sich in reinem c (ohne ++) nicht so implementieren das es mit deinem bubblesort funktioniert 😃



  • *nocheinendraufsetz*

    void quicksort(int array[], int l, int r)
    {
       int i=l, j=r, v=array[l];
       if(l >= r)
          return;
    
       for(;;)
       {
          while(array[++i] < v);
          while(array[--j] > v);
    
          if(i < j)
             swap(&array[i], &array[j]);
          else
             break;
       }
    
       swap(&array[j], &array[l]);
       quicksort(array, l, j);
       quicksort(array, j+1, r);
    }
    

    😃



  • Original erstellt von japro:
    @dill abers swap lässt sich in reinem c (ohne ++) nicht so implementieren das es mit deinem bubblesort funktioniert 😃

    Warum?



  • weil

    swap(a[j], a[j+1]);
    

    die argumente by value übergibt d.h. swap hat nacher lokale variablen mit den werten der elemente kann sie aber im effektiven array nicht vertauschen.



  • Original erstellt von japro:
    **weil

    swap(a[j], a[j+1]);
    

    die argumente by value übergibt d.h. swap hat nacher lokale variablen mit den werten der elemente kann sie aber im effektiven array nicht vertauschen.**

    Argh, da muss man aber genau lesen, Argument akzeptiert 😃



  • Äh,hallo,
    ich danke euch vielmals für die Tips, aber ich bin klein, blond und ein blutiger Anfänger. Und das was Du (Japro) das geschrieben hast ist irgendwie doch etwas zu hoch für mich. 😕
    Aber trotzdem danke, dass ihr versucht mir zu helfen.

    Gira



  • hmm naja also makro ginge es 🙂



  • jo copy+paste ... 🙄

    aber dass das kein ansi-C ist wird schon paar zeilen frher klar...


Anmelden zum Antworten