HOME


Algorithmen und Problemlösungen mit C++, Doina Logofatu


 





Copyright© 2007 by Doina Logofătu
Die Programme


1  ALGORITHMEN – GRUNDLEGENDE KONZEPTE  1
  
                                          
 
2  VERSCHACHTELTE SCHACHTELN   25
Das Programm   29

   
P01_BoxInBox.java         schachteln.in
                                         schachteln2.in
                                         schachteln3.in
    C#: 
P01_BoxInBox.cs
   
3  GREEDY  39
Problem 1. Rucksackproblem  40

    P01Rucksack.java           rucksack.in
    C#:  P01Rucksack.cs

Problem 2. Kartenfärbung  43


    P02MapColoring.java        map.in   
    C#:  P02MapColoring.cs

Problem 3. Springer auf dem Schachbrett  45

    P03Knight.java                 springer.in
                                           springer2.in
    C#:  P03Knight.cs

Problem 4. Minimaler Spannbaum (Kruskal-Algorithmus)   48

    P04SpanningTree.java       kruskal.in
    C#:  P04SpanningTree.cs       Anmerkung

Problem 5. Huffman-Kodierung  56


    P05HuffmanCode.java        huffman.in
    C#:  P04HuffmanCode.cs
   
4  DATA ORDERING PROBLEM    65
Programm   84

    P01_DOPI.java
    C#:  P01_DOPI.cs
   
5  REKURSION   99
Problem  1. Quersumme und Spiegelung einer natürlichen Zahl   106

    P01DigitsSumAndReverse.java    
    C#:  P01DigitsSumAndReverse.cs

Problem  2. Die Zahl 4  108

    P02Number4.java              nr4.in  
    C#:  P02Number4.cs

Problem  3. Rest großer Potenzen  111

    P03BigMod.java               bigmod.in
    C#:  P03BigMod.cs
    
Problem  4. Die Torte (lineare Rekursion)  115

     P04Tart1.java                   torte.in
     P04Tart2.java
     C#:  P4Tart1.cs
     C#:  P4Tart2.cs

Problem  5. Die Ackermannfunktion                                                      
     (verschachtelte Rekursion, "compound recursion")   118
 
    P05Ack.java                     ack.in
    C#:  P05Ack.cs

Problem  6. Rekursive Zahlenumwandlung                                             
     (Dezimalsystem in System mit Basis P)   120
 
    P06BaseP.java                  baseP.in
    C#:  P6BaseP.cs

Problem  7. Summe zweier Wurzeln (verzweigte Rekursion)   123
 
    P07Equation.java               equation.in
    C#:  P7Equation.cs

Problem  8. Collatz-Funktion (nicht-monotone Rekursion)   125

     P08CollatzSeq.java            collatzSeq.in
     C#:  P08CollatzSeq.cs

Problem  9. Quadrate und Quadrätchen   127
 
    P09QuadrateRek.java         quadrate.in
    C#:  P9QuadrateRek.cs

Problem 10. Quadrate (direkte Rekursion)  130

     P10PaintQuadrate.java
 
    C#:  P10PaintQuadrate.zip       Anmerkung

Problem 11. Quadrate und Kreise (indirekte Rekursion)  133

     P11PaintQuadrateCircle.java

Problem 12. Die Koch’sche Schneeflockenkurve   135
 
      P12Koch.java

      C#:  P12Koch.zip       Anmerkung
 
 
 6  TEILE UND HERRSCHE   145
Problem 1. Größter gemeinsamer Teiler mehrerer Zahlen   146

     P01GGT.java                      ggt.in
     C#:  P01GGT.cs

Problem 2. Die Türme von Hanoi   148

     P02Hanoi.java
    
C#:  P02Hanoi.cs                       

Problem 3. Integral mit Trapezregel   150

     P03Integral.java                  integral.in
     C#:  P03Integral.cs
 
Problem 4. Quicksort     152

     P04QSort.java                    QSort.in
     C#:  P04QSort.cs

Problem 5. Mergesort (Sortieren durch Verschmelzen)  155

     P05MergeSort.java              MSort.in
    
C#:  P05MergeSort.cs

Problem 6. Quad-Bäume   157

     P06QuadTree.java               quad.in
     C#:  P06QuadTree.cs

Problem 7. Diskrete Fourier-Transformation (DFT)   162

     P07Fourier.java                   fourier.in   

    
C#:  P07Fourier.cs

7  BACKTRACKING    169
Problem  1. Das Problem der n Damen   169

     P01NQueens.java   
     C#:  P01NQueens.cs

Problem  2. Das Problem der n Türme  178
   
Problem  3. Das Problem der Türme auf den ersten m Reihen  179

Problem  4. Das Problem der aufsteigenden Türme
                           auf den ersten m Reihen  180

Problem  5. Die Freundschafts-Jugendherberge  181

Problem  6. Partitionen einer natürlichen Zahl   182

       P06NPart.java
      
C#:  P06NPart.cs

Problem  7. Erdkunde-Referate   185

       P07Referat.java
      
C#:  P07Referat.cs
           
Problem  8. Alle Wege des Springers   188

       P08Springer.java
      
C#:  P08Springer.cs

Problem  9. Das Fotoproblem  191

       P09PhotoProblem.java       foto.in
C#:  P09PhotoProblem.cs

Problem 10. Der ausbrechende Ball  193

       P10Ball.java                      ball.in
      
C#:  P10Ball.cs

Problem 11. Orangensport  196

     P11Orangensport.java        orangen.in

       C#:  P11Orangesport.cs
             
P11Orangesport02.cs

Problem 12. Testmusterkompaktierung  205

     P12Compactation.java        tests.in
     C#:  P12Compactation.cs
 
Problem 13. Sudoku   214

     P13Sudoku.java                 sudoku.in
                                             sudoku2.in
    C#:  P13Sudoku.cs

Problem 14. Das Haus des Nikolaus   221

     P14SantaClaus.java 
     C#:  P14SantaClaus.cs
            Kap7_P14.zip  (graphische Ausgabe)
 
8  DYNAMISCHE PROGRAMMIERUNG  231
Problem 1. Das Zählen der Kaninchen   236

     P01Fibo.java

Problem 2. Längste aufsteigende Teilfolge    240

     P02Ascending.java          aufsteigend.in

Problem 3. Längste gemeinsame Teilfolge (LCS)   245

     P03LCS.java                     lcs.in
                                             lcs2.in

Problem 4. Zahlen-Dreieck    249

     P04Triangle.java                dreieck.in

Problem 5. Domino   253

     P05Domino.java                domino.in

Problem 6. Verteilung der Geschenke  258

     P06Presents.java              geschenke.in
                                             geschenke2.in

Problem 7. Ähnliche Summe   261

     P07SameSums.java          zalen.in
                                            zahlen2.in
                                            zahlen3.in

Problem 8. Schotten auf dem Oktoberfest   266

     P08Oktoberfest1.java         oktoberfest.in
     P08Oktoberfest2.java
     P08Oktoberfest3.java
     P08Oktoberfest4.java

Problem 9. Springer auf dem Schachbrett    275

     P09Knight.java                  springer.in
                                             springer2.in
                                             springer3.in

Problem 10. Summen von Produkten   280

     P10SumsOfProducts.java   prodsum.in
                                             prodsum2.in

Problem 11. Minimale Triangulierung eines konvexen Vielecks   286

     P11ConvexPolygonMinimalTriangulation.java    triang.in

Problem 12. Multiplikation einer Matrizenfolge   291

     P12MatrixSequenceMultiplication.java             matrix.in

Problem 13. Edit-Distanz    297

     P13EditDistance.java             edit.in

Problem 14. Arbitrage  305

     P14StocksFluctuation.java     arbitrage.in
   
9  POTENZSUMMEN    311
Programm   318

    P01SumOfPowers.java             psum.in