Effizient Variablen tauschen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Effizient Variablen tauschen

    Hallo zusammen,

    ich habe zwei Variablen. Was ist die effizienteste Methode, den INhalt der beiden Variablen zu tauschen? Gibts einen Weg oder temporäre Zwischenvariable?

    DANKE!

    strauberry

  • #2
    wozu sollte man den inhalt zweier variablen tauschen?
    PHP-Code:
    $a 1;
    $b 2;
    $tmp $a;
    $b $a;
    $a $tmp
    ist doch ziemlich sinnfrei, oder?

    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Praktisch ist es natürlich sinnfrei :-)

      Ich brauche nur einen theoretischen Hintegrund. Hatte nen Schreibfehler in meiner Frage: ich meinte nicht "oder Hilfsvariable" sondern "ohne Hilfsvariable"...

      Kommentar


      • #4
        sondern "ohne Hilfsvariable"...
        nö, gibt es nicht.

        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Von der Idee her würde auch schon reichen, mit zeigern oder so... also auch, was vielleicht in PHP technisch nicht realisierbar ist :-)
          Brauche das ganze nämlich nur als Idee und nicht als PHP-Code...

          Kommentar


          • #6
            Original geschrieben von Kropff
            nö, gibt es nicht.
            doch - mit xor
            PHP-Code:
            $a=1;
            $b=2;

            $a^=$b;
            $b^=$a;
            $a^=$b

            Kommentar


            • #7
              ach, das war mir auch neu.

              peter
              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
              Meine Seite

              Kommentar


              • #8
                Original geschrieben von 3DMax
                doch - mit xor
                Das mag für diesen Sonderfall funktioneren :-) - eine allgemeintaugliche Lösung ist das aber nicht.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  mit zwei ints oder zwei strings funktionierts zumindest

                  Kommentar


                  • #10
                    Original geschrieben von 3DMax
                    mit zwei ints oder zwei strings funktionierts zumindest
                    Schon mal mit Strings unterschiedlicher Länge probiert ...?
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      Original geschrieben von wahsaga
                      Schon mal mit Strings unterschiedlicher Länge probiert ...?
                      ähm, ok, hast ja recht.

                      obwohl, eine "lösung" hätte ich dafür auch - poste ich aber lieber nicht , ist dann doch einfacher mit einer hilfsvariablen

                      Kommentar


                      • #12
                        Ich glaube diese Möglichkeit wurde sogar erst letztlich gepostet:
                        PHP-Code:
                        $a 123;
                        $b 321;

                        list(
                        $a$b) = array($b$a);

                        echo 
                        $a// 321
                        echo $b// 123 
                        Wieso eigentlich ohne Hilfsvariablen? Funktionieren tut's so jedenfalls, in meinen Augen wäre die Hilfsvariablen-Methode "schöner" als diese.
                        Nieder mit der Camel Case-Konvention

                        Kommentar


                        • #13
                          Es geht um die Programmiersprache Ada und möglichst Speicherschonene Algorithmen. Da eine Integer (es sollen zwei Integer getauscht werden) wesentlich mehr Platz braucht als ein Zeiger, dachte ich, es so zu lösen.

                          Kommentar


                          • #14
                            Ob es speicherschonender ist, ein "temporäres" array zu erzeugen, als eine var mehr?
                            Nieder mit der Camel Case-Konvention

                            Kommentar


                            • #15
                              Original geschrieben von Kropff
                              wozu sollte man den inhalt zweier variablen tauschen?
                              google mal nach swap idiom.

                              @OP
                              nein, der interpreter muss immer ein temporäres objekt erzeugen.


                              greets
                              (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

                              Kommentar

                              Lädt...
                              X