132 lines
4.2 KiB
Plaintext
132 lines
4.2 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "cd29a032-072b-4ca6-a3e3-efb176993768",
|
|
"metadata": {
|
|
"editable": false,
|
|
"slideshow": {
|
|
"slide_type": ""
|
|
},
|
|
"tags": []
|
|
},
|
|
"source": [
|
|
"# Projekt zu Sortierverfahren"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "40d22d02-7d98-41f9-a5c0-d43a372e50a8",
|
|
"metadata": {
|
|
"editable": false,
|
|
"slideshow": {
|
|
"slide_type": ""
|
|
},
|
|
"tags": []
|
|
},
|
|
"source": [
|
|
"## Ziel\n",
|
|
"Ziel ist es, verschiedene Sortierverfahren zu implementieren und zu vergleichen"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "e584a65a-a138-4064-85f2-f3fa468cf0ac",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": ""
|
|
},
|
|
"tags": []
|
|
},
|
|
"source": [
|
|
"## 1. Allgemeine Kriterien\n",
|
|
"* Auch zu Hause kann und soll weitergearbeitet werden!\n",
|
|
"* Jedes Sortierverfahren soll in ein eigenes Jupyter-Notebook programmiert werden - eine Vorlage steht dafür bereit.\n",
|
|
"* Die Funktion, um ein Array mit Zufallszahlen zu erzeugen, kann von Aufgabe 01.06.3 übernommen werden und muss dann in jedes Jupyter-Notebook kopiert werden.\n",
|
|
"* Beginn ist am Montag, 24.11. Abgabe ist am Freitag, 12.12.\n",
|
|
"* Am Montag, 8.12. findet die Klausur statt."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "1e385fe9-3054-41a9-9eda-192d0468cb0e",
|
|
"metadata": {
|
|
"editable": false,
|
|
"slideshow": {
|
|
"slide_type": ""
|
|
},
|
|
"tags": []
|
|
},
|
|
"source": [
|
|
"## 2. **MUSS**-Kriterien\n",
|
|
"Die *MUSS*-Kriterien müssen auf jeden Fall erfüllt werden. Werden nur diese erfüllt, so liegt die Endnote im Bereich von ca. 6 Punkten.\n",
|
|
"* Das Sortierverfahren **SelectionSort** muss sowohl **out-of-place** als auch **in-place** programmiert werden.\n",
|
|
" * Hinweis: bei in-place dürfen keine Array-Funktionen wie z.B. `splice` oder `push` verwendet werden!\n",
|
|
"* Das Sortierverfahren **InsertionSort** muss programmiert werden.\n",
|
|
"* Der Quellcode muss **kurz kommentiert** werden.\n",
|
|
" * Es soll nicht jede Zeile kommentiert werden, lediglich Blöcke, was ihr euch dabei gedacht habt und was der jeweilige Abschnitt tut."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "5642f602-be4b-417d-b993-fdf81e1ae37f",
|
|
"metadata": {
|
|
"editable": false,
|
|
"slideshow": {
|
|
"slide_type": ""
|
|
},
|
|
"tags": []
|
|
},
|
|
"source": [
|
|
"## 3. **SOLL**-Kriterien\n",
|
|
"Werden zusätzlich auch noch die SOLL-Kriterien erfüllt, so liegt die Endnote bei ca. 10 Punkten.\n",
|
|
"* Als Beispiel für die \"divide-and-conquer\"-Technik soll **MergeSort** programmiert werden.\n",
|
|
"* **BubbleSort** soll programmiert werden.\n",
|
|
"* Es soll eine Zeitmessung programmiert werden, um die Schnelligkeit der verschiedenen Sortierverfahren miteinander vergleichen zu können.\n",
|
|
" * Achtung: die Zeitmessung nur für den Sortiervorgang **ohne** Ausgabe\n",
|
|
"* Die *durchschnittlich* benötigte Zeit soll für **alle** Sortierverfahren für unterschiedlich große Arrays gemessen und zusammengestellt/verglichen werden."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "aca2c026-0d46-44ee-b177-65450ba74f89",
|
|
"metadata": {
|
|
"editable": false,
|
|
"slideshow": {
|
|
"slide_type": ""
|
|
},
|
|
"tags": []
|
|
},
|
|
"source": [
|
|
"## 4. **DARF**-Kriterien\n",
|
|
"Werden **alle** Kriterien erfüllt, so liegt die Endnote bei etwa 15 Punkten.\n",
|
|
"* Mindestens **zwei** der folgenden Algorithmen dürfen programmiert werden:\n",
|
|
" * **HeapSort**\n",
|
|
" * **QuickSort**\n",
|
|
" * **TimSort**\n",
|
|
" * oder ein selbst gewählter Sortieralgorithmus.\n",
|
|
"* Begründe für **alle** Algorithmen, ob diese in *deiner* Programmierung stabil oder nicht-stabil funktionieren.\n",
|
|
"* Gib die Laufzeit deiner Programmierung für alle Algorithmen an."
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Deno",
|
|
"language": "typescript",
|
|
"name": "deno"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": "typescript",
|
|
"file_extension": ".ts",
|
|
"mimetype": "text/x.typescript",
|
|
"name": "typescript",
|
|
"nbconvert_exporter": "script",
|
|
"pygments_lexer": "typescript",
|
|
"version": "5.8.3"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|