Pascal Schärli 27.11.2020
Pascal Schärli 27.11.2020
Pascal Schärli 27.11.2020
Pascal Schärli 27.11.2020
Pascal Schärli 27.11.2020
Pascal Schärli 27.11.2020
Turm 1
Turm 2
Turm 3
Pascal Schärli 27.11.2020
\(n = 4\)
Turm 1
Turm 3
Turm 2
[1]
[2]
[3]
[4]
Pascal Schärli 27.11.2020
\(n = 4\)
Turm 1
Turm 3
Turm 2
[1]
[2]
[3]
[4]
Pascal Schärli 27.11.2020
\(n = 4\)
Turm 1
Turm 3
Turm 2
[1]
[2]
[3]
[4]
Pascal Schärli 27.11.2020
\(n = 4\)
Turm 1
Turm 3
Turm 2
[1]
[2]
[3]
[4]
Dies können wir in einem Rekursiven Algorithmus festhalten:
hanoi(int n, int von, int nach){
if(n == 1) movetop(von,nach);
int other = 6 - von - nach;
hanoi(n-1,von,other); // [2]
movetop(von,nach); // [3]
hanoi(n-1,other,nach); // [4]
}
Pascal Schärli 27.11.2020
Mergesort ist ein Sortieralgorithmus, welcher ebenfalls durch divide and conquer funktioniert
Â
3
8
6
5
2
7
4
1
1
2
3
4
5
6
7
8
3
8
6
5
2
7
4
1
3
8
6
5
2
7
4
1
1
2
3
Pascal Schärli 27.11.2020
3
8
6
5
2
7
4
1
1
2
3
4
5
6
7
8
3
8
6
5
2
7
4
1
3
8
6
5
2
7
4
1
1
2
3
Pascal Schärli 27.11.2020
1
2
4
7
ptr1
ptr2
3
8
6
5
1
2
4
7
3
8
6
5
Um zwei Listen zu Mergen kann man:
Â
• einen Zeiger auf den Anfang von beiden Teillisten setzen
• Das kleinere Element dem Resultat hinzufügen und diesen Zeiger vergrössern
Pascal Schärli 27.11.2020
1
2
4
7
ptr1
ptr2
3
8
6
5
1
2
4
7
3
8
6
5
Um zwei Listen zu Mergen kann man:
Â
• einen Zeiger auf den Anfang von beiden Teillisten setzen
• Das kleinere Element dem Resultat hinzufügen und diesen Zeiger vergrössern
Pascal Schärli 27.11.2020
1
2
4
7
ptr1
ptr2
3
8
6
5
1
2
4
7
3
8
6
5
Um zwei Listen zu Mergen kann man:
Â
• einen Zeiger auf den Anfang von beiden Teillisten setzen
• Das kleinere Element dem Resultat hinzufügen und diesen Zeiger vergrössern
Pascal Schärli 27.11.2020
1
2
4
7
ptr1
ptr2
3
8
6
5
1
2
4
7
3
8
6
5
Um zwei Listen zu Mergen kann man:
Â
• einen Zeiger auf den Anfang von beiden Teillisten setzen
• Das kleinere Element dem Resultat hinzufügen und diesen Zeiger vergrössern
Pascal Schärli 27.11.2020
1
2
4
7
ptr1
ptr2
3
8
6
5
1
2
4
7
3
8
6
5
Um zwei Listen zu Mergen kann man:
Â
• einen Zeiger auf den Anfang von beiden Teillisten setzen
• Das kleinere Element dem Resultat hinzufügen und diesen Zeiger vergrössern
Pascal Schärli 27.11.2020
1
2
4
7
ptr1
ptr2
3
8
6
5
1
2
4
7
3
8
6
5
Um zwei Listen zu Mergen kann man:
Â
• einen Zeiger auf den Anfang von beiden Teillisten setzen
• Das kleinere Element dem Resultat hinzufügen und diesen Zeiger vergrössern
Pascal Schärli 27.11.2020
1
2
4
7
ptr1
ptr2
3
8
6
5
1
2
4
7
3
8
6
5
Um zwei Listen zu Mergen kann man:
Â
• einen Zeiger auf den Anfang von beiden Teillisten setzen
• Das kleinere Element dem Resultat hinzufügen und diesen Zeiger vergrössern
Pascal Schärli 27.11.2020
1
2
4
7
ptr1
ptr2
3
8
6
5
1
2
4
7
3
8
6
5
Um zwei Listen zu Mergen kann man:
Â
• einen Zeiger auf den Anfang von beiden Teillisten setzen
• Das kleinere Element dem Resultat hinzufügen und diesen Zeiger vergrössern
Pascal Schärli 27.11.2020
1
2
4
7
ptr1
ptr2
3
8
6
5
1
2
4
7
3
8
6
5
Um zwei Listen zu Mergen kann man:
Â
• einen Zeiger auf den Anfang von beiden Teillisten setzen
• Das kleinere Element dem Resultat hinzufügen und diesen Zeiger vergrössern
Pascal Schärli 27.11.2020
1
2
4
7
ptr1
ptr2
3
8
6
5
1
2
4
7
3
8
6
5
Um zwei Listen zu Mergen kann man:
Â
• einen Zeiger auf den Anfang von beiden Teillisten setzen
• Das kleinere Element dem Resultat hinzufügen und diesen Zeiger vergrössern
Pascal Schärli 27.11.2020
3
8
6
5
2
7
4
1
3
8
6
5
2
7
4
1
Pascal Schärli 27.11.2020
3
8
6
5
2
7
4
1
3
8
6
5
2
7
4
1
3
8
6
5
2
7
4
1
Pascal Schärli 27.11.2020
3
8
6
5
2
7
4
1
3
8
6
5
2
7
4
1
3
8
6
5
3
8
6
5
2
7
4
1
Pascal Schärli 27.11.2020
3
8
6
5
2
7
4
1
3
8
6
5
2
7
4
1
3
8
6
5
3
8
3
8
6
5
2
7
4
1
Pascal Schärli 27.11.2020
3
8
6
5
2
7
4
1
3
8
6
5
2
7
4
1
3
8
6
5
3
8
3
8
3
8
6
5
2
7
4
1
Pascal Schärli 27.11.2020
3
8
6
5
2
7
4
1
3
8
6
5
2
7
4
1
3
8
6
5
3
8
3
8
6
5
3
8
6
5
2
7
4
1
Pascal Schärli 27.11.2020
3
8
6
5
2
7
4
1
3
8
6
5
2
7
4
1
3
8
6
5
3
8
3
8
6
5
5
6
3
8
6
5
2
7
4
1
Pascal Schärli 27.11.2020
3
8
6
5
2
7
4
1
3
8
6
5
2
7
4
1
3
8
6
5
3
8
3
8
6
5
5
6
3
5
6
8
3
8
6
5
2
7
4
1
Pascal Schärli 27.11.2020
3
8
6
5
2
7
4
1
3
8
6
5
2
7
4
1
3
8
6
5
3
8
3
8
6
5
5
6
3
5
6
8