Advertisement
Guest User

Untitled

a guest
Dec 10th, 2019
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.07 KB | None | 0 0
  1. import bspg.strukturen.*;
  2. import sum.komponenten.*;
  3.  
  4. /**
  5.  * @author Bernard Schriek
  6.  * @version 24.07.2006
  7.  */
  8. public class Wettkampfliste extends Liste
  9. {
  10.     // Bezugsobjekte
  11.  
  12.     // Attribute
  13.  
  14.     // Konstruktor
  15.     public Wettkampfliste()
  16.     {
  17.         super();
  18.     }
  19.  
  20.     // Dienste
  21.     /**
  22.      * Die aktuelle Wettkampfkarte wird geliefert
  23.      */
  24.     public Wettkampfkarte aktuelleKarte()
  25.     {
  26.         return (Wettkampfkarte) this.aktuellesElement();
  27.     }
  28.  
  29.     /**
  30.      * Die Wettkampfkarte mit der hšchsten Punktzahl wird geliefert
  31.      */
  32.     public Wettkampfkarte besteKarte(int pArt)
  33.     {
  34.         Wettkampfkarte lBeste, lVergleichskarte;
  35.  
  36.         if (this.istLeer())
  37.             return null;
  38.         else
  39.         {
  40.             this.zumAnfang();
  41.             lBeste = this.aktuelleKarte();
  42.             this.vor();
  43.             while (!this.istDahinter())
  44.             {
  45.                 lVergleichskarte = this.aktuelleKarte();
  46.                 if (lVergleichskarte.punkte(pArt) > lBeste.punkte(pArt))
  47.                     lBeste = lVergleichskarte;
  48.                 this.vor();
  49.             }
  50.             return lBeste;
  51.         }
  52.     }
  53.  
  54.     /**
  55.      * Die Wettkampfliste wird mit Bubblesort sortiert
  56.      */
  57.     public void bubblesort(int pArt)
  58.     {
  59.         Wettkampfkarte lKarte1, lKarte2;
  60.         boolean lGetauscht;
  61.         int lDurchlaeufe;
  62.  
  63.         if (this.laenge() > 1)
  64.         {
  65.             lDurchlaeufe = 0;
  66.             do
  67.             {
  68.                 lGetauscht = false;
  69.                 this.zumAnfang();
  70.                 lKarte1 = this.aktuelleKarte();
  71.                 this.vor();
  72.                 while (this.aktuellePosition() < this.laenge() - lDurchlaeufe)
  73.                 {
  74.                     lKarte2 = this.aktuelleKarte();
  75.                     if (lKarte2.punkte(pArt) > lKarte1.punkte(pArt))
  76.                     {
  77.                         this.ersetzeAktuelles(lKarte1);
  78.                         this.zurueck();
  79.                         this.ersetzeAktuelles(lKarte2);
  80.                         this.vor();
  81.                         lGetauscht = true;
  82.                     }
  83.                     else
  84.                         lKarte1 = lKarte2;
  85.                     this.vor();
  86.                 }
  87.                 lDurchlaeufe++;
  88.             }
  89.             while (lGetauscht);
  90.         }
  91.     }
  92.  
  93.     /**
  94.      * Die Wettkampfliste wird mit Selectionsort sortiert
  95.      */
  96.     public void selectionsort(int pArt)
  97.     {
  98.         Wettkampfkarte lKarte;
  99.         Liste lSortierteListe;
  100.  
  101.         lSortierteListe = new Liste();
  102.         while (!this.istLeer())
  103.         {
  104.             lKarte = this.besteKarte(pArt);
  105.             this.geheZuPosition(this.position(lKarte));
  106.             this.loescheAktuelles();
  107.             lSortierteListe.zumEnde();
  108.             lSortierteListe.fuegeDahinterEin(lKarte);
  109.         }
  110.         this.haengeListeAn(lSortierteListe);
  111.     }
  112.  
  113.     /**
  114.      * Die Wettkampfliste wird mit Insertionsort sortiert
  115.      */
  116.     public void insertionsort(int pArt)
  117.     {
  118.         Wettkampfkarte lKarte, lVergleichskarte;
  119.         Liste lSortierteListe;
  120.         boolean lPositionGefunden;
  121.  
  122.         lSortierteListe = new Liste();
  123.         this.zumAnfang();
  124.         while (!this.istLeer())
  125.         {
  126.             lKarte = this.aktuelleKarte();
  127.             this.loescheAktuelles();
  128.             if (lSortierteListe.istLeer())
  129.                 lSortierteListe.fuegeDahinterEin(lKarte);
  130.             else
  131.             {
  132.                 lSortierteListe.zumAnfang();
  133.                 lPositionGefunden = false;
  134.                 do
  135.                 {
  136.                     lVergleichskarte = (Wettkampfkarte) lSortierteListe
  137.                             .aktuellesElement();
  138.                     if (lKarte.punkte(pArt) > lVergleichskarte.punkte(pArt))
  139.                         lPositionGefunden = true;
  140.                     else
  141.                         lSortierteListe.vor();
  142.                 }
  143.                 while (!lSortierteListe.istDahinter() && !lPositionGefunden);
  144.                 lSortierteListe.fuegeDavorEin(lKarte);
  145.             }
  146.         }
  147.         this.haengeListeAn(lSortierteListe);
  148.     }
  149.  
  150.     /**
  151.      * Die Wettkampfliste wird mit Quicksort sortiert
  152.      */
  153.     public void quicksort(int pArt)
  154.     {
  155.         Wettkampfliste lLinkeListe, lRechteListe;
  156.         Wettkampfkarte lPivotelement, lKarte;
  157.  
  158.         if (this.laenge() > 1) // mindestens 2 Elemente, also muss man sortieren
  159.         {
  160.             lLinkeListe = new Wettkampfliste();
  161.             lRechteListe = new Wettkampfliste();
  162.             this.zumAnfang();
  163.             lPivotelement = (Wettkampfkarte) this.aktuellesElement();
  164.             this.vor();
  165.             while (!this.istDahinter())
  166.             {
  167.                 lKarte = (Wettkampfkarte) this.aktuellesElement();
  168.                 if (lKarte.punkte(pArt) > lPivotelement.punkte(pArt))
  169.                     lLinkeListe.fuegeDahinterEin(lKarte);
  170.                 else
  171.                     lRechteListe.fuegeDahinterEin(lKarte);
  172.                 this.vor();
  173.             }
  174.             this.entferneAlleElemente();
  175.             lLinkeListe.quicksort(pArt);
  176.             lRechteListe.quicksort(pArt);
  177.             this.haengeListeAn(lLinkeListe);
  178.             this.zumEnde();
  179.             this.fuegeDahinterEin(lPivotelement);
  180.             this.haengeListeAn(lRechteListe);
  181.         }
  182.     }
  183.  
  184. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement