Ich habe gelesen The Art of Computer Programming, und obwohl es seine Momente der höheren Mathematik hat, die ich einfach nicht bekommen kann, haben einige Übungen Spaß gemacht zu tun.Wie extrahiere ich einen Algorithmus aus diesen Anweisungen?
Nachdem ich einen von ihnen getan habe, gehe ich zu der Antwort über, ob ich besser oder schlechter als das tat, was das Buch vorschlägt (normalerweise schlechter), aber ich bekomme nicht, was die Antwort für das gegenwärtige I Ich versuche überhaupt zu vermitteln.
Das Buch Frage und vorgeschlagene Lösung kann here
ich verstanden, was zu finden, ist, dass t
die Anzahl der sein kann ‚fehlenden‘ Elemente oder eine allgemeine konstant sein, aber was wirklich verstehe ich nicht ist die scheinbar willkürliche Anweisung, sie basierend auf ihren Komponenten zu sortieren, was für mich so aussieht, als würden Sie Ihre Räder drehen, denn auf den ersten Blick bringt es Sie nicht näher an die ursprüngliche Reihenfolge heran. Und die Entscheidung (unter anderem), einen Teil der gepaarten Namen durch eine Zahl zu ersetzen (Datei G enthält alle Paare (i, xi) für n-t < i ≤ n).
Also meine Frage ist, einfach, Wie extrahiere ich einen Algorithmus aus dieser Antwort?
Bit einer Klarstellung:
Ich verstehe, was es tun soll, und wie würde ich mich in sie in C++ übersetzen. Was ich nicht verstehe, ist, warum ich die Kopien der Eingabedatei sortieren soll, und wenn ja, nach welchen Kriterien sortiere ich, sowie nach den Gründen, um eine Seite der Paare zu einer Zahl zu ändern.
Die einzige Antwort, die ich mir vorstellen kann, ist "Diese Antwort _ist_ der Algorithmus. Es gibt nichts zu extrahieren.". Aber da Sie es als C++ markiert haben, wollte ich vermutlich wissen, wie Sie einen Algorithmus in C++ konvertieren. Und das ist meistens eine Frage des sorgfältigen Lesens. – MSalters
Die Daten repräsentieren eine verkettete Liste. Jeder bestimmte Datenwert wird zweimal vorkommen, mit Ausnahme des ersten und des letzten Elements. Verknüpfen Sie es in der richtigen Reihenfolge. – Logicrat
Mit der Bearbeitung vermute ich, dass Sie den Punkt von TAOCP vermissen. Es ist einer der schwierigsten Texte, also erwarte nicht, es auf einen Blick zu verstehen. Lesen. Jeden. Wort. In diesem Fall scheinen Sie den Hintergrund zu vermissen. _Wenn Sie unter den gegebenen Einschränkungen arbeiten (kein wahlfreier Zugriff), welche alternative Lösung benötigen Sie? Weil es ohne diese Einschränkungen ein Anfängerbeispiel wäre. TAOCP ist das kanonische Comp.Sci-Lehrbuch, das Ihnen beibringt, wie Sie Probleme angehen, die keine offensichtliche Lösung bieten. – MSalters