From d48edcd327479e7a230e1a34684f251a5cd47337 Mon Sep 17 00:00:00 2001 From: Peter Gerwinski <peter.gerwinski@hs-bochum.de> Date: Sun, 10 Dec 2023 21:13:54 +0100 Subject: [PATCH] Notizen und Beispiele 7.12.2023 --- 20231207/bogosort-1.c | 66 ++++++++++++++++++++++++++++++++++ 20231207/bogosort-2.c | 64 +++++++++++++++++++++++++++++++++ 20231207/bsort-1.c | 48 +++++++++++++++++++++++++ 20231207/bsort-2.c | 55 +++++++++++++++++++++++++++++ 20231207/bsort-3.c | 58 ++++++++++++++++++++++++++++++ 20231207/bsort-3a.c | 58 ++++++++++++++++++++++++++++++ 20231207/bsort-3b.c | 58 ++++++++++++++++++++++++++++++ 20231207/bsort-4.c | 57 ++++++++++++++++++++++++++++++ 20231207/hanoi-32.c | 58 ++++++++++++++++++++++++++++++ 20231207/hp-20231207.pdf | Bin 382848 -> 399108 bytes 20231207/hp-20231207.tex | 70 ++++++++++++++++++------------------ 20231207/hp-20231207.txt | 20 +++++++++++ 20231207/names.h | 50 ++++++++++++++++++++++++++ 20231207/qsort-1.c | 70 ++++++++++++++++++++++++++++++++++++ 20231207/qsort-2.c | 72 +++++++++++++++++++++++++++++++++++++ 20231207/qsort-3.c | 74 +++++++++++++++++++++++++++++++++++++++ 20231207/qsort-3a.c | 74 +++++++++++++++++++++++++++++++++++++++ 20231207/qsort-3b.c | 74 +++++++++++++++++++++++++++++++++++++++ 20231207/sort-0.c | 16 +++++++++ 20231207/sort-1.c | 21 +++++++++++ 20231207/sort-1a.c | 21 +++++++++++ 20231207/sort-2.c | 46 ++++++++++++++++++++++++ 20231207/sort-3.c | 46 ++++++++++++++++++++++++ 20231207/sort-4.c | 59 +++++++++++++++++++++++++++++++ 20231207/sort-4a.c | 59 +++++++++++++++++++++++++++++++ 20231207/sort-5.c | 60 +++++++++++++++++++++++++++++++ 20231207/sort-6.c | 60 +++++++++++++++++++++++++++++++ 20231207/sort-7.c | 53 ++++++++++++++++++++++++++++ 28 files changed, 1432 insertions(+), 35 deletions(-) create mode 100644 20231207/bogosort-1.c create mode 100644 20231207/bogosort-2.c create mode 100644 20231207/bsort-1.c create mode 100644 20231207/bsort-2.c create mode 100644 20231207/bsort-3.c create mode 100644 20231207/bsort-3a.c create mode 100644 20231207/bsort-3b.c create mode 100644 20231207/bsort-4.c create mode 100644 20231207/hanoi-32.c create mode 100644 20231207/hp-20231207.txt create mode 100644 20231207/names.h create mode 100644 20231207/qsort-1.c create mode 100644 20231207/qsort-2.c create mode 100644 20231207/qsort-3.c create mode 100644 20231207/qsort-3a.c create mode 100644 20231207/qsort-3b.c create mode 100644 20231207/sort-0.c create mode 100644 20231207/sort-1.c create mode 100644 20231207/sort-1a.c create mode 100644 20231207/sort-2.c create mode 100644 20231207/sort-3.c create mode 100644 20231207/sort-4.c create mode 100644 20231207/sort-4a.c create mode 100644 20231207/sort-5.c create mode 100644 20231207/sort-6.c create mode 100644 20231207/sort-7.c diff --git a/20231207/bogosort-1.c b/20231207/bogosort-1.c new file mode 100644 index 0000000..6f8f4fe --- /dev/null +++ b/20231207/bogosort-1.c @@ -0,0 +1,66 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> + +int comparisons = 0; + +void display (char **name, int left, int right) +{ + printf ("\e[H\e[J"); + for (int i = 0; name[i]; i++) + { + printf ("%s", name[i]); + if (i == left || i == right) + printf (" <--"); + printf ("\n"); + } + printf ("%d\n", comparisons); +} + +int compare (char **name, int left, int right) +{ + int result = strcmp (name[left], name[right]); + comparisons++; + display (name, left, right); + usleep (200000); + return result; +} + +int is_sorted (char **name) +{ + for (int i = 1; name[i]; i++) + if (compare (name, i - 1, i) > 0) + return 0; + return 1; +} + +void mix (char **name) +{ + int n = 0; + while (name[n]) + n++; + for (int i = 0; i < n; i++) + { + int j = rand () % (n - i); + char *temp = name[i]; + name[i] = name[j]; + name[j] = temp; + } +} + +void sort (char **name) +{ + while (!is_sorted (name)) + mix (name); +} + +int main (void) +{ + char *name[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter", + "Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans", + "Thomas", "Ulrich", "Zacharias", NULL }; + sort (name); + display (name, -1, -1); + return 0; +} diff --git a/20231207/bogosort-2.c b/20231207/bogosort-2.c new file mode 100644 index 0000000..3120ed1 --- /dev/null +++ b/20231207/bogosort-2.c @@ -0,0 +1,64 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> + +int comparisons = 0; + +void display (char **name, int left, int right) +{ + printf ("\e[H\e[J"); + for (int i = 0; name[i]; i++) + { + printf ("%s", name[i]); + if (i == left || i == right) + printf (" <--"); + printf ("\n"); + } + printf ("%d\n", comparisons); +} + +int compare (char **name, int left, int right) +{ + int result = strcmp (name[left], name[right]); + comparisons++; + display (name, left, right); + usleep (200000); + return result; +} + +int is_sorted (char **name) +{ + for (int i = 1; name[i]; i++) + if (compare (name, i - 1, i) > 0) + return 0; + return 1; +} + +void mix (char **name) +{ + int n = 0; + while (name[n]) + n++; + for (int i = 0; i < n; i++) + { + int j = rand () % (n - i); + char *temp = name[i]; + name[i] = name[j]; + name[j] = temp; + } +} + +void sort (char **name) +{ + while (!is_sorted (name)) + mix (name); +} + +int main (void) +{ + char *name[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", NULL }; + sort (name); + display (name, -1, -1); + return 0; +} diff --git a/20231207/bsort-1.c b/20231207/bsort-1.c new file mode 100644 index 0000000..3c02adc --- /dev/null +++ b/20231207/bsort-1.c @@ -0,0 +1,48 @@ +#include <stdio.h> +#include <string.h> +#include <unistd.h> + +int comparisons = 0; + +void display (char **name, int left, int right) +{ + printf ("\e[H\e[J"); + for (int i = 0; name[i]; i++) + { + printf ("%s", name[i]); + if (i == left || i == right) + printf (" <--"); + printf ("\n"); + } + printf ("%d\n", comparisons); +} + +int compare (char **name, int left, int right) +{ + int result = strcmp (name[left], name[right]); + comparisons++; + display (name, left, right); + usleep (200000); + return result; +} + +void sort (char **name) +{ + for (int i = 1; name[i]; i++) + if (compare (name, i - 1, i) > 0) + { + char *temp = name[i - 1]; + name[i - 1] = name[i]; + name[i] = temp; + } +} + +int main (void) +{ + char *name[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter", + "Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans", + "Thomas", "Ulrich", "Zacharias", NULL }; + sort (name); + display (name, -1, -1); + return 0; +} diff --git a/20231207/bsort-2.c b/20231207/bsort-2.c new file mode 100644 index 0000000..d277be0 --- /dev/null +++ b/20231207/bsort-2.c @@ -0,0 +1,55 @@ +#include <stdio.h> +#include <string.h> +#include <unistd.h> + +int comparisons = 0; + +void display (char **name, int left, int right) +{ + printf ("\e[H\e[J"); + for (int i = 0; name[i]; i++) + { + printf ("%s", name[i]); + if (i == left || i == right) + printf (" <--"); + printf ("\n"); + } + printf ("%d\n", comparisons); +} + +int compare (char **name, int left, int right) +{ + int result = strcmp (name[left], name[right]); + comparisons++; + display (name, left, right); + usleep (200000); + return result; +} + +void sort (char **name) +{ + int sorted = 0; + while (name[sorted]) + sorted++; + while (sorted > 0) + { + for (int i = 1; i < sorted; i++) + if (compare (name, i - 1, i) > 0) + { + char *temp = name[i - 1]; + name[i - 1] = name[i]; + name[i] = temp; + } + sorted--; + } +} + +int main (void) +{ + char *name[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter", + "Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans", + "Thomas", "Ulrich", "Zacharias", NULL }; + sort (name); + display (name, -1, -1); + return 0; +} diff --git a/20231207/bsort-3.c b/20231207/bsort-3.c new file mode 100644 index 0000000..67d0097 --- /dev/null +++ b/20231207/bsort-3.c @@ -0,0 +1,58 @@ +#include <stdio.h> +#include <string.h> +#include <unistd.h> + +int comparisons = 0; + +void display (char **name, int left, int right) +{ + printf ("\e[H\e[J"); + for (int i = 0; name[i]; i++) + { + printf ("%s", name[i]); + if (i == left || i == right) + printf (" <--"); + printf ("\n"); + } + printf ("%d\n", comparisons); +} + +int compare (char **name, int left, int right) +{ + int result = strcmp (name[left], name[right]); + comparisons++; + display (name, left, right); + usleep (200000); + return result; +} + +void sort (char **name) +{ + int done = 0; + int sorted = 0; + while (name[sorted]) + sorted++; + while (sorted > 0 && !done) + { + done = 1; + for (int i = 1; i < sorted; i++) + if (compare (name, i - 1, i) > 0) + { + done = 0; + char *temp = name[i - 1]; + name[i - 1] = name[i]; + name[i] = temp; + } + sorted--; + } +} + +int main (void) +{ + char *name[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter", + "Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans", + "Thomas", "Ulrich", "Zacharias", NULL }; + sort (name); + display (name, -1, -1); + return 0; +} diff --git a/20231207/bsort-3a.c b/20231207/bsort-3a.c new file mode 100644 index 0000000..c475276 --- /dev/null +++ b/20231207/bsort-3a.c @@ -0,0 +1,58 @@ +#include <stdio.h> +#include <string.h> +#include <unistd.h> + +int comparisons = 0; + +void display (char **name, int left, int right) +{ + printf ("\e[H\e[J"); + for (int i = 0; name[i]; i++) + { + printf ("%s", name[i]); + if (i == left || i == right) + printf (" <--"); + printf ("\n"); + } + printf ("%d\n", comparisons); +} + +int compare (char **name, int left, int right) +{ + int result = strcmp (name[left], name[right]); + comparisons++; + display (name, left, right); + usleep (200000); + return result; +} + +void sort (char **name) +{ + int done = 0; + int sorted = 0; + while (name[sorted]) + sorted++; + while (sorted > 0 && !done) + { + done = 1; + for (int i = 1; i < sorted; i++) + if (compare (name, i - 1, i) > 0) + { + done = 0; + char *temp = name[i - 1]; + name[i - 1] = name[i]; + name[i] = temp; + } + sorted--; + } +} + +int main (void) +{ + char *name[] = { "Anna", "Berta", "Box", "Dieter", "Fritz", "Hans", "Heinrich", "Hugo", + "Lisa", "Maria", "Otto", "Peter", "Siegfried", "Thomas", "Ulrich", + "Zacharias", NULL }; + sort (name); + display (name, -1, -1); + return 0; +} diff --git a/20231207/bsort-3b.c b/20231207/bsort-3b.c new file mode 100644 index 0000000..9795fe9 --- /dev/null +++ b/20231207/bsort-3b.c @@ -0,0 +1,58 @@ +#include <stdio.h> +#include <string.h> +#include <unistd.h> + +int comparisons = 0; + +void display (char **name, int left, int right) +{ + printf ("\e[H\e[J"); + for (int i = 0; name[i]; i++) + { + printf ("%s", name[i]); + if (i == left || i == right) + printf (" <--"); + printf ("\n"); + } + printf ("%d\n", comparisons); +} + +int compare (char **name, int left, int right) +{ + int result = strcmp (name[left], name[right]); + comparisons++; + display (name, left, right); + usleep (200000); + return result; +} + +void sort (char **name) +{ + int done = 0; + int sorted = 0; + while (name[sorted]) + sorted++; + while (sorted > 0 && !done) + { + done = 1; + for (int i = 1; i < sorted; i++) + if (compare (name, i - 1, i) > 0) + { + done = 0; + char *temp = name[i - 1]; + name[i - 1] = name[i]; + name[i] = temp; + } + sorted--; + } +} + +int main (void) +{ + char *name[] = { "Zacharias", "Ulrich", "Thomas", "Siegfried", "Peter", "Otto", "Maria", + "Lisa", "Hugo", "Heinrich", "Hans", "Fritz", "Dieter", "Box", "Berta", + "Anna", NULL }; + sort (name); + display (name, -1, -1); + return 0; +} diff --git a/20231207/bsort-4.c b/20231207/bsort-4.c new file mode 100644 index 0000000..241270a --- /dev/null +++ b/20231207/bsort-4.c @@ -0,0 +1,57 @@ +#include <stdio.h> +#include <string.h> +#include <unistd.h> + +int comparisons = 0; + +void display (char **name, int left, int right) +{ + printf ("\e[H\e[J"); + for (int i = 0; name[i]; i++) + { + printf ("%s", name[i]); + if (i == left || i == right) + printf (" <--"); + printf ("\n"); + } + printf ("%d\n", comparisons); +} + +int compare (char **name, int left, int right) +{ + int result = strcmp (name[left], name[right]); + comparisons++; + display (name, left, right); + usleep (200000); + return result; +} + +void sort (char **name) +{ + int sorted = 0; + while (name[sorted]) + sorted++; + while (sorted > 0) + { + int new_sorted = 0; + for (int i = 1; i < sorted; i++) + if (compare (name, i - 1, i) > 0) + { + new_sorted = i; + char *temp = name[i - 1]; + name[i - 1] = name[i]; + name[i] = temp; + } + sorted = new_sorted; + } +} + +int main (void) +{ + char *name[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter", + "Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans", + "Thomas", "Ulrich", "Zacharias", NULL }; + sort (name); + display (name, -1, -1); + return 0; +} diff --git a/20231207/hanoi-32.c b/20231207/hanoi-32.c new file mode 100644 index 0000000..55e8d74 --- /dev/null +++ b/20231207/hanoi-32.c @@ -0,0 +1,58 @@ +#include <stdio.h> +#include <error.h> + +#define DISKS 32 + +int n[3], tower[3][DISKS]; + +void display (void) +{ + printf ("\n"); + for (int i = 0; i < 3; i++) + { + printf ("tower %d:", i); + for (int j = 0; j < n[i]; j++) + printf (" %d", tower[i][j]); + printf ("\n"); + } +} + +void move (int from, int to, int disks) +{ + if (disks == 1) + { + if (n[from] <= 0) + error (1, 0, "trying to move disk from empty tower"); + if (n[to] > 0 && tower[to][n[to] - 1] < tower[from][n[from] - 1]) + error (1, 0, "trying to move larger disk on smaller one"); + tower[to][n[to]] = tower[from][n[from] - 1]; + n[to]++; + n[from]--; + static int counter = 1; + if (counter++ >= 100000000) + { + display (); + counter = 1; + } + } + else + { + int help = 0 + 1 + 2 - from - to; + move (from, help, disks - 1); + move (from, to, 1); + move (help, to, disks - 1); + } +} + +int main (void) +{ + n[0] = DISKS; + for (int i = 0; i < DISKS; i++) + tower[0][i] = DISKS - i; + n[1] = 0; + n[2] = 0; + display (); + move (0, 2, DISKS); + display (); + return 0; +} diff --git a/20231207/hp-20231207.pdf b/20231207/hp-20231207.pdf index f1b861dbf29df728f937d9c68089cb0d57649ee3..19ef347b517567ceededc8726a63a5338b1b83f4 100644 GIT binary patch delta 42088 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 delta 26521 zcmZo!C(*E8e1p<nM#E<1z1x-dGTwd9Xuh3sEz@`A=^vGug&8fU+rMSiu74Zu+ke|k zVDInn4;qZxvkvF8y-;-B>{+ETYwbmbmDL5;wuDDS=KZ<oTvyw+NTqw*q`cX_QCn;y zmaKUAq43#R<+CSd8GNcabS~<E*oNA6<sOc+D@D5s4r><pmd#tEwq8%|Z>}z@>#g=j zU2m>Esd<r>Gi}?F+6ZZNRb})3&Iyz2e;5}oysW+M)7u=Qy=Ai)0+x%YZx-DcV(7W! z$TV-G=t=QLu9a~N$vV3~em@?|r*(V!ZL9yK-)i@t`x0gNXvO6jDqn&Ow00=7ieGX3 z@~Jp4a@*Qfe-rhVteO7w)^k>Kv+79w{_pH1KU6AI4v409aK>7wKf1GgXTr_G{qZHm z*HY_CJN90Uk=V&?y!<*tQNuw7*2d^wy;m7ZM-Chc%3NUlLrqHMHp3ak7w4FyYFdML zm^*SE*y|~6|F@(%T=u!s431ad=d8|&?q3)*hfDQbAg{QogwbWmGlp-J4><YHDKPEU z>s!5%b?1`4*PB@j8&js=N;+rwU{3jIF2h|q9UF>0>t~wq`}(qkht~1TEe+Y^-=^#- z)X(Oox<I9P?m>QD?fGZb61kjJGk>1Z*}CK0+hzX`7;c(Un0jYJ^=`$zu7(o&c4@+Y z#hY1YEed)mc0iNKFZi}#+O?x@snYW&Evu~DxMF*1P$K{87n>g>W(8W!?y=O|eWywC ztIeT}`)aoI?3hshVqeYc*Q<YMC4Ej7&HDAh&ZC*XfAwdR2Gc2#%?%r-D*C)vo1*<- zkD)}#Z2wy`p0!%v=JkuuYnb?co5uh3eh=UO5mP@t{p0f!iXqAuEL39e1nj)|W7_Nq zIk^*f_TRpLZ>rq(*~ea=Pg&5B_~#GL9?jaXDowMW9@zLI>eruOM*G|K?kT6+Uaejr zyf3wUu5-71{5$RVYjw|qn@pol3%C`Vxb{0fTy(7E=kA>stTOb@<^By@8vlD%+ywrm zz1p3+VM>?#*E9W>)8}7&X62t-C&ZdBn0=kTO5oajzODRI7N3<5)Us6+^0PgqY4;>D zI&k7#508_ZoOk}~d3Df&rT1s|Q|0=(ZwmJHu^Lx(ax^{LcS3cM{(kR3PSfvYjfPG! zA6JEWxXK1+PTa<2!WJ#@grlbN#$LZY8mq7V+n!ZeQ7_7<z2|h7NWRvbwJB3$)!&Gp z-<(|gVWYTeTBX%fCdpYX{5AJ-kLO#<tSEY?{dDbquP=@s78Ql=hqU+qh?n|5IqAN( z)?6;z8oT{F9+bU#@y}?{o=5@T(BweN1Hsc~z573F)~k=ZUw2l^GZg+W-!uK-ekNfi z1M}%0wlIlKFLY(moUXT(i8s=X=e<z$lZDK)N~<Ndow?C)*7f1BEy^y_ti0bjxBvYv z+qFdJmd~qgFU>@%J3LN4vAn;t)`rJ1+vURc^d|{R41y&7H|Vnz9xXVinq+x+isly6 zjM8tHFD|RkojzqNlS=*BH*X$!X}f4%3o<f^UdZIFBp_^H)R^Y|<+n?c*;x(6l%m{s zWw$k_PTrRD>gDR2-<#)kYkN*O7Uej>!OP7cT`ILF*>~=g_+_j!O+v4h73;a|)w!NF zYvZ07HR1Z@<+2<#S*l8>RMZ+cT{6zzz4tuWPi^<M*cRK@n_k_?F@3(X{>H7j;^9-e z1l#5$ojMqzzNpOGLVm5rh7*|)1uw;1(gHdZLlarweoT#O%9TkK$q{b-{qp(j+gaw% zZORwi^PM@zq?BuF$_($ij;u8%?9-nn9+bH=k0C9+rhj$#t{ZEExMm)hwUW7Yfx@OB zQGwzDi)2UL=bl@qM4x6=Q?fTT;j51cohh=*DcMo3#9c(?nb;E}Ce;o;?z$J7KOKE@ zCQtEzirswAM(zv6n<eWK9z^=gIP<llYO~|vuADEnyYqV|&+ira;;Nb~ykc5MR%`bJ zgUt`5EpN`S$ow^ZdiO5P#az~F7xB+wU	Ejq<Wqj*UwzgNl@nw|xpc^svdr{Hb&> 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 BB2xeW diff --git a/20231207/hp-20231207.tex b/20231207/hp-20231207.tex index 4bf45fe..45f0d25 100644 --- a/20231207/hp-20231207.tex +++ b/20231207/hp-20231207.tex @@ -248,41 +248,41 @@ } \end{lstlisting} \end{onlyenv} -% \begin{onlyenv}<6-> -% \vspace{-5.0cm} -% \hspace*{7.4cm}\begin{minipage}[t]{5cm} -% 32 Scheiben: -% \begin{lstlisting}[gobble=10,style=terminal] -% $ ¡time ./hanoi-9b¿ -% ... -% real 0m30,672s -% user 0m30,662s -% sys 0m0,008s -% \end{lstlisting} -% \pause[7] -% \begin{itemize} -% \arrowitem -% etwas über 1 Minute\\ -% für 64 Scheiben -% \end{itemize} -% \pause -% \vspace*{-0.5cm} -% \begin{picture}(0,0) -% \color{red} -% \put(0,0){\makebox(0,0)[bl]{\tikz[line width=1pt]{\draw(0,0)--(4,0.8);}}} -% \put(0,0.8){\makebox(0,0)[tl]{\tikz[line width=1pt]{\draw(0,0)--(4,-0.8);}}} -% \end{picture} -% -% Für jede zusätzliche Scheibe\\verdoppelt sich die Rechenzeit! -% % 30.672 * 2^32 / 3600 / 24 / 365.25 = 4174.43775518138261464750 -% \begin{itemize} -% \arrowitem -% $\frac{30,672\,\text{s}\,\cdot\,2^{32}}{3600\,\cdot\,24\,\cdot\,365,25} \approx 4174$ -% Jahre\\[\smallskipamount] -% für 64 Scheiben -% \end{itemize} -% \end{minipage} -% \end{onlyenv} + \begin{onlyenv}<6-> + \vspace{-5.0cm} + \hspace*{7.4cm}\begin{minipage}[t]{5cm} + 32 Scheiben: + \begin{lstlisting}[gobble=10,style=terminal] + $ ¡time ./hanoi-9b¿ + ... + real 0m30,672s + user 0m30,662s + sys 0m0,008s + \end{lstlisting} + \pause[7] + \begin{itemize} + \arrowitem + etwas über 1 Minute\\ + für 64 Scheiben + \end{itemize} + \pause + \vspace*{-0.5cm} + \begin{picture}(0,0) + \color{red} + \put(0,0){\makebox(0,0)[bl]{\tikz[line width=1pt]{\draw(0,0)--(4,0.8);}}} + \put(0,0.8){\makebox(0,0)[tl]{\tikz[line width=1pt]{\draw(0,0)--(4,-0.8);}}} + \end{picture} + + Für jede zusätzliche Scheibe\\verdoppelt sich die Rechenzeit! + % 30.672 * 2^32 / 3600 / 24 / 365.25 = 4174.43775518138261464750 + \begin{itemize} + \arrowitem + $\frac{30,672\,\text{s}\,\cdot\,2^{32}}{3600\,\cdot\,24\,\cdot\,365,25} \approx 4174$ + Jahre\\[\smallskipamount] + für 64 Scheiben + \end{itemize} + \end{minipage} + \end{onlyenv} \end{onlyenv} \end{frame} diff --git a/20231207/hp-20231207.txt b/20231207/hp-20231207.txt new file mode 100644 index 0000000..0caaea4 --- /dev/null +++ b/20231207/hp-20231207.txt @@ -0,0 +1,20 @@ +x ^ 9 = x * x * x * x * x * x * x * x * x # 8 Multiplikationen + + = ((x^2)^2)^2 * x # 4 Multiplikationen + `----v----' + x^8 + + +9 = 1001 binär + + Bits von rechts nach links: + + x x 1 --> damit multiplizieren + + ^2 x^2 0 --> damit nicht multiplizieren + + ^2 x^4 0 --> damit nicht multiplizieren + + ^2 x^8 1 --> damit multiplizieren + +--> O(log n) statt O(n) diff --git a/20231207/names.h b/20231207/names.h new file mode 100644 index 0000000..a265ff4 --- /dev/null +++ b/20231207/names.h @@ -0,0 +1,50 @@ +"Michael", "Laura", +"Elias", "Julia", +"Luca", "Anna", +"Liam", "Emma", +"Alexander", "Lena", +"Noah", "Vanessa", +"Jonas", "Lea", +"Marcel", "Mila", +"Daniel", "Lisa", +"David", "Lina", +"Milan", "Sarah", +"Julian", "Alina", +"Linus", "Emilia", +"Thomas", "Nina", +"Samuel", "Elena", +"Levin", "Lara", +"Levi", "Melanie", +"Jan", "Hannah", +"Lukas", "Sandra", +"Tim", "Leonie", +"Patrick", "Sophie", +"Marvin", "Mia", +"Andreas", "Amelie", +"Leon", "Selina", +"Tobias", "Luisa", +"Simon", "Maria", +"Valentin", "Jana", +"Robin", "Johanna", +"Paul", "Marie", +"Markus", "Milena", +"Benjamin", "Melina", +"Stefan", "Michelle", +"Felix", "Emily", +"Florian", "Renesmee", +"Fabian", "Aylin", +"Emil", "Jessica", +"Aaron", "Franziska", +"Manuel", "Jasmin", +"Christian", "Fiona", +"Dominik", "Sina", +"Joshua", "Jennifer", +"Moritz", "Claudia", +"Sebastian", "Nicole", +"Peter", "Annika", +"Philipp", "Sophia", +"Max", "Katharina", +"Johannes", "Isabella", +"Finn", "Nele", +"Adrian", "Elisabeth", +"Martin", "Pia", diff --git a/20231207/qsort-1.c b/20231207/qsort-1.c new file mode 100644 index 0000000..c5431b8 --- /dev/null +++ b/20231207/qsort-1.c @@ -0,0 +1,70 @@ +#include <stdio.h> +#include <string.h> +#include <unistd.h> + +int comparisons = 0; + +void display (char **name, char *pivot, int left, int right) +{ + printf ("\e[H\e[J"); + for (int i = 0; name[i]; i++) + { + printf ("%s", name[i]); + if (name[i] == pivot) + printf (" <=="); + else if (i == left || i == right) + printf (" <--"); + printf ("\n"); + } + printf ("%d\n", comparisons); +} + +int compare (char **name, char *pivot, int left, int right) +{ + int result = strcmp (name[left], pivot); + comparisons++; + display (name, pivot, left, right); + usleep (200000); + return result; +} + +void quicksort (char **name, int left, int right) +{ + int p = (left + right) / 2; + char *pivot = name[p]; + int l = left; + int r = right; + while (l < r) + { + while (l < r && compare (name, pivot, l, r - 1) < 0) + l++; + while (l < r && compare (name, pivot, r - 1, l) > 0) + r--; + if (l < r) + { + char *temp = name[r - 1]; + name[r - 1] = name[l]; + name[l] = temp; + l++; + r--; + } + } +} + +void sort (char **name) +{ + int r = 0; + while (name[r]) + r++; + quicksort (name, 0, r); +} + +int main (void) +{ + char *name[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter", + "Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans", + "Thomas", "Ulrich", "Zacharias", NULL }; + sort (name); + display (name, NULL, -1, -1); + return 0; +} diff --git a/20231207/qsort-2.c b/20231207/qsort-2.c new file mode 100644 index 0000000..cfdc2ec --- /dev/null +++ b/20231207/qsort-2.c @@ -0,0 +1,72 @@ +#include <stdio.h> +#include <string.h> +#include <unistd.h> + +int comparisons = 0; + +void display (char **name, char *pivot, int left, int right) +{ + printf ("\e[H\e[J"); + for (int i = 0; name[i]; i++) + { + printf ("%s", name[i]); + if (name[i] == pivot) + printf (" <=="); + else if (i == left || i == right) + printf (" <--"); + printf ("\n"); + } + printf ("%d\n", comparisons); +} + +int compare (char **name, char *pivot, int left, int right) +{ + int result = strcmp (name[left], pivot); + comparisons++; + display (name, pivot, left, right); + usleep (200000); + return result; +} + +void quicksort (char **name, int left, int right) +{ + int p = (left + right) / 2; + char *pivot = name[p]; + int l = left; + int r = right; + while (l < r) + { + while (l < r && compare (name, pivot, l, r - 1) < 0) + l++; + while (l < r && compare (name, pivot, r - 1, l) > 0) + r--; + if (l < r) + { + char *temp = name[r - 1]; + name[r - 1] = name[l]; + name[l] = temp; + l++; + r--; + } + } + if (l < right) + quicksort (name, l, right); +} + +void sort (char **name) +{ + int r = 0; + while (name[r]) + r++; + quicksort (name, 0, r); +} + +int main (void) +{ + char *name[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter", + "Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans", + "Thomas", "Ulrich", "Zacharias", NULL }; + sort (name); + display (name, NULL, -1, -1); + return 0; +} diff --git a/20231207/qsort-3.c b/20231207/qsort-3.c new file mode 100644 index 0000000..e6b7d99 --- /dev/null +++ b/20231207/qsort-3.c @@ -0,0 +1,74 @@ +#include <stdio.h> +#include <string.h> +#include <unistd.h> + +int comparisons = 0; + +void display (char **name, char *pivot, int left, int right) +{ + printf ("\e[H\e[J"); + for (int i = 0; name[i]; i++) + { + printf ("%s", name[i]); + if (name[i] == pivot) + printf (" <=="); + else if (i == left || i == right) + printf (" <--"); + printf ("\n"); + } + printf ("%d\n", comparisons); +} + +int compare (char **name, char *pivot, int left, int right) +{ + int result = strcmp (name[left], pivot); + comparisons++; + display (name, pivot, left, right); + usleep (200000); + return result; +} + +void quicksort (char **name, int left, int right) +{ + int p = (left + right) / 2; + char *pivot = name[p]; + int l = left; + int r = right; + while (l < r) + { + while (l < r && compare (name, pivot, l, r - 1) < 0) + l++; + while (l < r && compare (name, pivot, r - 1, l) > 0) + r--; + if (l < r) + { + char *temp = name[r - 1]; + name[r - 1] = name[l]; + name[l] = temp; + l++; + r--; + } + } + if (r > left) + quicksort (name, left, r); + if (l < right) + quicksort (name, l, right); +} + +void sort (char **name) +{ + int r = 0; + while (name[r]) + r++; + quicksort (name, 0, r); +} + +int main (void) +{ + char *name[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter", + "Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans", + "Thomas", "Ulrich", "Zacharias", NULL }; + sort (name); + display (name, NULL, -1, -1); + return 0; +} diff --git a/20231207/qsort-3a.c b/20231207/qsort-3a.c new file mode 100644 index 0000000..d3e757e --- /dev/null +++ b/20231207/qsort-3a.c @@ -0,0 +1,74 @@ +#include <stdio.h> +#include <string.h> +#include <unistd.h> + +int comparisons = 0; + +void display (char **name, char *pivot, int left, int right) +{ + printf ("\e[H\e[J"); + for (int i = 0; name[i]; i++) + { + printf ("%s", name[i]); + if (name[i] == pivot) + printf (" <=="); + else if (i == left || i == right) + printf (" <--"); + printf ("\n"); + } + printf ("%d\n", comparisons); +} + +int compare (char **name, char *pivot, int left, int right) +{ + int result = strcmp (name[left], pivot); + comparisons++; + display (name, pivot, left, right); + usleep (200000); + return result; +} + +void quicksort (char **name, int left, int right) +{ + int p = (left + right) / 2; + char *pivot = name[p]; + int l = left; + int r = right; + while (l < r) + { + while (l < r && compare (name, pivot, l, r - 1) < 0) + l++; + while (l < r && compare (name, pivot, r - 1, l) > 0) + r--; + if (l < r) + { + char *temp = name[r - 1]; + name[r - 1] = name[l]; + name[l] = temp; + l++; + r--; + } + } + if (r > left) + quicksort (name, left, r); + if (l < right) + quicksort (name, l, right); +} + +void sort (char **name) +{ + int r = 0; + while (name[r]) + r++; + quicksort (name, 0, r); +} + +int main (void) +{ + char *name[] = { "Anna", "Berta", "Box", "Dieter", "Fritz", "Hans", "Heinrich", "Hugo", + "Lisa", "Maria", "Otto", "Peter", "Siegfried", "Thomas", "Ulrich", + "Zacharias", NULL }; + sort (name); + display (name, NULL, -1, -1); + return 0; +} diff --git a/20231207/qsort-3b.c b/20231207/qsort-3b.c new file mode 100644 index 0000000..0bafef4 --- /dev/null +++ b/20231207/qsort-3b.c @@ -0,0 +1,74 @@ +#include <stdio.h> +#include <string.h> +#include <unistd.h> + +int comparisons = 0; + +void display (char **name, char *pivot, int left, int right) +{ + printf ("\e[H\e[J"); + for (int i = 0; name[i]; i++) + { + printf ("%s", name[i]); + if (name[i] == pivot) + printf (" <=="); + else if (i == left || i == right) + printf (" <--"); + printf ("\n"); + } + printf ("%d\n", comparisons); +} + +int compare (char **name, char *pivot, int left, int right) +{ + int result = strcmp (name[left], pivot); + comparisons++; + display (name, pivot, left, right); + usleep (200000); + return result; +} + +void quicksort (char **name, int left, int right) +{ + int p = (left + right) / 2; + char *pivot = name[p]; + int l = left; + int r = right; + while (l < r) + { + while (l < r && compare (name, pivot, l, r - 1) < 0) + l++; + while (l < r && compare (name, pivot, r - 1, l) > 0) + r--; + if (l < r) + { + char *temp = name[r - 1]; + name[r - 1] = name[l]; + name[l] = temp; + l++; + r--; + } + } + if (r > left) + quicksort (name, left, r); + if (l < right) + quicksort (name, l, right); +} + +void sort (char **name) +{ + int r = 0; + while (name[r]) + r++; + quicksort (name, 0, r); +} + +int main (void) +{ + char *name[] = { "Zacharias", "Ulrich", "Thomas", "Siegfried", "Peter", "Otto", "Maria", + "Lisa", "Hugo", "Heinrich", "Hans", "Fritz", "Dieter", "Box", "Berta", + "Anna", NULL }; + sort (name); + display (name, NULL, -1, -1); + return 0; +} diff --git a/20231207/sort-0.c b/20231207/sort-0.c new file mode 100644 index 0000000..70e0e71 --- /dev/null +++ b/20231207/sort-0.c @@ -0,0 +1,16 @@ +#include <stdio.h> + +int find_first (char **name) +{ + return 2; +} + +int main (void) +{ + char *name[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter", + "Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans", + "Thomas", "Ulrich", "Zacharias", NULL }; + int first = find_first (name); + printf ("%s\n", name[first]); + return 0; +} diff --git a/20231207/sort-1.c b/20231207/sort-1.c new file mode 100644 index 0000000..3f009d4 --- /dev/null +++ b/20231207/sort-1.c @@ -0,0 +1,21 @@ +#include <stdio.h> +#include <string.h> + +int find_first (char **name) +{ + int first = 0; + for (int i = 1; name[i]; i++) + if (strcmp (name[i], name[first]) < 0) + first = i; + return first; +} + +int main (void) +{ + char *name[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter", + "Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans", + "Thomas", "Ulrich", "Zacharias", NULL }; + int first = find_first (name); + printf ("%s\n", name[first]); + return 0; +} diff --git a/20231207/sort-1a.c b/20231207/sort-1a.c new file mode 100644 index 0000000..e60f103 --- /dev/null +++ b/20231207/sort-1a.c @@ -0,0 +1,21 @@ +#include <stdio.h> +#include <string.h> + +int find_first (char **name) +{ + int first = 0; + for (int i = 1; name[i]; i++) + if (strcmp (name[i], name[first]) < 0) + first = i; + return first; +} + +int main (void) +{ + char *name[] = { "otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter", + "Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans", + "Thomas", "Ulrich", "Zacharias", NULL }; + int first = find_first (name); + printf ("%s\n", name[first]); + return 0; +} diff --git a/20231207/sort-2.c b/20231207/sort-2.c new file mode 100644 index 0000000..638e6e2 --- /dev/null +++ b/20231207/sort-2.c @@ -0,0 +1,46 @@ +#include <stdio.h> +#include <string.h> +#include <unistd.h> + +int comparisons = 0; + +void display (char **name, int left, int right) +{ + printf ("\e[H\e[J"); + for (int i = 0; name[i]; i++) + { + printf ("%s", name[i]); + if (i == left || i == right) + printf (" <--"); + printf ("\n"); + } + printf ("%d\n", comparisons); +} + +int compare (char **name, int left, int right) +{ + int result = strcmp (name[left], name[right]); + comparisons++; + display (name, left, right); + usleep (200000); + return result; +} + +int find_first (char **name) +{ + int first = 0; + for (int i = 1; name[i]; i++) + if (compare (name, i, first) < 0) + first = i; + return first; +} + +int main (void) +{ + char *name[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter", + "Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans", + "Thomas", "Ulrich", "Zacharias", NULL }; + int first = find_first (name); + display (name, first, -1); + return 0; +} diff --git a/20231207/sort-3.c b/20231207/sort-3.c new file mode 100644 index 0000000..430a6fc --- /dev/null +++ b/20231207/sort-3.c @@ -0,0 +1,46 @@ +#include <stdio.h> +#include <string.h> +#include <unistd.h> + +int comparisons = 0; + +void display (char **name, int left, int right) +{ + printf ("\e[H\e[J"); + for (int i = 0; name[i]; i++) + { + printf ("%s", name[i]); + if (i == left || i == right) + printf (" <--"); + printf ("\n"); + } + printf ("%d\n", comparisons); +} + +int compare (char **name, int left, int right) +{ + int result = strcmp (name[left], name[right]); + comparisons++; + display (name, left, right); + usleep (200000); + return result; +} + +int find_first (char **name, int i0) +{ + int first = i0; + for (int i = i0 + 1; name[i]; i++) + if (compare (name, i, first) < 0) + first = i; + return first; +} + +int main (void) +{ + char *name[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter", + "Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans", + "Thomas", "Ulrich", "Zacharias", NULL }; + int first = find_first (name, 0); + display (name, first, -1); + return 0; +} diff --git a/20231207/sort-4.c b/20231207/sort-4.c new file mode 100644 index 0000000..19d4f41 --- /dev/null +++ b/20231207/sort-4.c @@ -0,0 +1,59 @@ +#include <stdio.h> +#include <string.h> +#include <unistd.h> + +int comparisons = 0; + +void display (char **name, int left, int right) +{ + printf ("\e[H\e[J"); + for (int i = 0; name[i]; i++) + { + printf ("%s", name[i]); + if (i == left || i == right) + printf (" <--"); + printf ("\n"); + } + printf ("%d\n", comparisons); +} + +int compare (char **name, int left, int right) +{ + int result = strcmp (name[left], name[right]); + comparisons++; + display (name, left, right); + usleep (200000); + return result; +} + +int find_first (char **name, int i0) +{ + int first = i0; + for (int i = i0 + 1; name[i]; i++) + if (compare (name, i, first) < 0) + first = i; + return first; +} + +void sort (char **name) +{ + int sorted = 0; + while (name[sorted]) + { + int first = find_first (name, sorted); + char *temp = name[sorted]; + name[sorted] = name[first]; + name[first] = temp; + sorted++; + } +} + +int main (void) +{ + char *name[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter", + "Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans", + "Thomas", "Ulrich", "Zacharias", NULL }; + sort (name); + display (name, -1, -1); + return 0; +} diff --git a/20231207/sort-4a.c b/20231207/sort-4a.c new file mode 100644 index 0000000..8312d2b --- /dev/null +++ b/20231207/sort-4a.c @@ -0,0 +1,59 @@ +#include <stdio.h> +#include <string.h> +#include <unistd.h> + +int comparisons = 0; + +void display (char **name, int left, int right) +{ + printf ("\e[H\e[J"); + for (int i = 0; name[i]; i++) + { + printf ("%s", name[i]); + if (i == left || i == right) + printf (" <--"); + printf ("\n"); + } + printf ("%d\n", comparisons); +} + +int compare (char **name, int left, int right) +{ + int result = strcmp (name[left], name[right]); + comparisons++; + display (name, left, right); + usleep (200000); + return result; +} + +int find_first (char **name, int i0) +{ + int first = i0; + for (int i = i0 + 1; name[i]; i++) + if (compare (name, i, first) < 0) + first = i; + return first; +} + +void sort (char **name) +{ + int sorted = 0; + while (name[sorted]) + { + int first = find_first (name, sorted); + char *temp = name[sorted]; + name[sorted] = name[first]; + name[first] = temp; + sorted++; + } +} + +int main (void) +{ + char *name[] = { "Anna", "Berta", "Box", "Dieter", "Fritz", "Hans", "Heinrich", "Hugo", + "Lisa", "Maria", "Otto", "Peter", "Siegfried", "Thomas", "Ulrich", + "Zacharias", NULL }; + sort (name); + display (name, -1, -1); + return 0; +} diff --git a/20231207/sort-5.c b/20231207/sort-5.c new file mode 100644 index 0000000..f0742bc --- /dev/null +++ b/20231207/sort-5.c @@ -0,0 +1,60 @@ +#include <stdio.h> +#include <string.h> +#include <unistd.h> + +int comparisons = 0; + +void display (char **name, int left, int right) +{ + printf ("\e[H\e[J"); + for (int i = 0; name[i]; i++) + { + printf ("%s", name[i]); + if (i == left || i == right) + printf (" <--"); + printf ("\n"); + } + printf ("%d\n", comparisons); +} + +int compare (char **name, int left, int right) +{ + int result = strcmp (name[left], name[right]); + comparisons++; + display (name, left, right); + usleep (200); + return result; +} + +int find_first (char **name, int i0) +{ + int first = i0; + for (int i = i0 + 1; name[i]; i++) + if (compare (name, i, first) < 0) + first = i; + return first; +} + +void sort (char **name) +{ + int sorted = 0; + while (name[sorted]) + { + int first = find_first (name, sorted); + char *temp = name[sorted]; + name[sorted] = name[first]; + name[first] = temp; + sorted++; + } +} + +int main (void) +{ + char *name[] = { + #include "names.h" + NULL + }; + sort (name); + display (name, -1, -1); + return 0; +} diff --git a/20231207/sort-6.c b/20231207/sort-6.c new file mode 100644 index 0000000..94a1a16 --- /dev/null +++ b/20231207/sort-6.c @@ -0,0 +1,60 @@ +#include <stdio.h> +#include <string.h> +#include <unistd.h> + +int comparisons = 0; + +void display (char **name, int left, int right) +{ + printf ("\e[H\e[J"); + for (int i = 0; name[i]; i++) + { + printf ("%s", name[i]); + if (i == left || i == right) + printf (" <--"); + printf ("\n"); + } + printf ("%d\n", comparisons); +} + +int compare (char **name, int left, int right) +{ + int result = strcmp (name[left], name[right]); + comparisons++; +// display (name, left, right); +// usleep (200); + return result; +} + +int find_first (char **name, int i0) +{ + int first = i0; + for (int i = i0 + 1; name[i]; i++) + if (compare (name, i, first) < 0) + first = i; + return first; +} + +void sort (char **name) +{ + int sorted = 0; + while (name[sorted]) + { + int first = find_first (name, sorted); + char *temp = name[sorted]; + name[sorted] = name[first]; + name[first] = temp; + sorted++; + } +} + +int main (void) +{ + char *name[] = { + #include "names.h" + NULL + }; + sort (name); + display (name, -1, -1); + return 0; +} diff --git a/20231207/sort-7.c b/20231207/sort-7.c new file mode 100644 index 0000000..46132dd --- /dev/null +++ b/20231207/sort-7.c @@ -0,0 +1,53 @@ +#include <stdio.h> +#include <string.h> +#include <unistd.h> + +int comparisons = 0; + +void display (char **name, int left, int right) +{ + printf ("\e[H\e[J"); + for (int i = 0; name[i]; i++) + { + printf ("%s", name[i]); + if (i == left || i == right) + printf (" <--"); + printf ("\n"); + } + printf ("%d\n", comparisons); +} + +int compare (char **name, int left, int right) +{ + int result = strcmp (name[left], name[right]); + comparisons++; + display (name, left, right); + usleep (200000); + return result; +} + +void sort (char **name) +{ + int sorted = 0; + while (name[sorted]) + { + int first = sorted; + for (int i = sorted + 1; name[i]; i++) + if (compare (name, i, first) < 0) + first = i; + char *temp = name[sorted]; + name[sorted] = name[first]; + name[first] = temp; + sorted++; + } +} + +int main (void) +{ + char *name[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter", + "Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans", + "Thomas", "Ulrich", "Zacharias", NULL }; + sort (name); + display (name, -1, -1); + return 0; +} -- GitLab