Java - Methoden

From Coders.Bay Wiki
Revision as of 11:01, 16 November 2022 by 85.31.21.47 (talk) (→‎Aufgabe: Merge Sort)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Tag 1[edit]

Aufgabe: Game of Life[edit]

Conways Game of Life ist ein beliebter Algorithmus der Automatentheorie. Dabei hat man ein beliebig großes Feld (e.g. 100 x 100 Zellen). Jede der Zelle kann entweder lebendig oder tod sein. Eine Zelle hat immer acht Nachbarzellen (Moor). Die Anfangspopulation wird zufällig gewählt, danach entwickelt sich der Algorithmus in Generationen nach folgenden Regeln:

  • ist eine Zelle tot und hat genau 3 lebende Nachbarn, wird sie in der nächsten Generation geboren 👶
  • ist eine Zelle am Leben und hat weniger als 2 Nachbarn stirbt sie an Einsamkeit 😔
  • ist eine Zelle am Leben und hat 2 oder 3 Nachbarn, bleibt sie am Leben 🤝‍
  • ist eine Zelle am Leben und hat mehr als 3 Nachbarn, stirbt sie an Überbevölkerung 💀

Eine schöne Visualisierung des Algorithmus findet ihr auf https://bitstorm.org/gameoflife/.

Schreib einen Algorithmus der ein N X N Feld visualisert (z.B. # für lebende Zellen und Leerzeichen/'.' für tote Zellen) und Generationen durchlaufen lässt. Entweder X Generationen oder bis das Programm abgebrochen wird.

Tag 2[edit]

Aufgabe: Divide & Conquer - Maximum finden[edit]

Schreibe ein Programm, dass in einem Array von Zahlen das Maximum findet. Da dieses Array sehr, sehr groß werden kann wollen wir das Divide & Conquer Prinzip anwenden.

Das Zahlenarray könnt ihr direkt anlegen, ihr müsst sie nicht von der Konsole einlesen.

Die Maximum Suche sollten wir mit dem Divide & Conquer Prinzip umsetzen. Solange das Array 2 oder mehr Elemente behält, wird das Array in der Mitte geteilt und für beide Arrays das Maximum gesucht. Löse das Problem mit Hilfe einer Rekursion.

Kompetenzcheck[edit]

Aufgabe: Merge Sort[edit]

Implementiere einen Merge Sort Algorithmus!

Eine super Visualisierung zu Sortieralgorithmen findest du auf https://visualgo.net/en/sorting/. Eine gute Erklärung zur Vorgehensweise des Merge Sortfindest du auf Wikipedia: https://de.wikipedia.org/wiki/Mergesort

Video Erklärung: https://www.youtube.com/watch?v=Pr2Jf83_kG0