aaa
This commit is contained in:
33
Algorithmen und Datenstrukturen/UEB02.md
Normal file
33
Algorithmen und Datenstrukturen/UEB02.md
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
# 1
|
||||||
|
## proz1
|
||||||
|
- 200
|
||||||
|
- 2n
|
||||||
|
- O(n)
|
||||||
|
## proz2
|
||||||
|
- 10000
|
||||||
|
- n^2
|
||||||
|
- O(n^2)
|
||||||
|
## proz3
|
||||||
|
- 10
|
||||||
|
- sqrt(n
|
||||||
|
- O(sqrt(n)))
|
||||||
|
## proz4
|
||||||
|
- 100 * 9999 * 99 = 98990100
|
||||||
|
- 100 * (n^2-1) * (n-1)
|
||||||
|
- O(n^3)
|
||||||
|
## proz5
|
||||||
|
- 5050
|
||||||
|
- sigma 1-> n (n*(n+1))/2
|
||||||
|
- O(n^2)
|
||||||
|
## proz6
|
||||||
|
- 7
|
||||||
|
- log(n) + 1
|
||||||
|
- O(log(n))
|
||||||
|
# 2
|
||||||
|
## 1
|
||||||
|
- O(n * log2(n))
|
||||||
|
## 2
|
||||||
|
- O(2^n)
|
||||||
|
## 3
|
||||||
|
- O(n^2)
|
||||||
|
|
||||||
BIN
Algorithmen und Datenstrukturen/UEB02.pdf
Normal file
BIN
Algorithmen und Datenstrukturen/UEB02.pdf
Normal file
Binary file not shown.
13
English/VL02.md
Normal file
13
English/VL02.md
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# p8
|
||||||
|
## 1
|
||||||
|
### a
|
||||||
|
- 1 Personalabteilung: HR
|
||||||
|
- 2 Vertrieb: Sales and Marketing
|
||||||
|
- 3 Hardware support: Hardware Support
|
||||||
|
- 4 Forschung und Entwicklung: R&D
|
||||||
|
- 5 Qualitätssicherung: Quality Assurance
|
||||||
|
- 6 Rechtsabteilung: Legal department
|
||||||
|
- 7 Kundendiests: Customer service
|
||||||
|
- 8 Softwareentwicklung: Software development
|
||||||
|
### b
|
||||||
|
Q
|
||||||
@@ -1,56 +1,87 @@
|
|||||||
# 1.1
|
## 1.1
|
||||||
|
|
||||||
## a) Was ist das Hauptziel von CVE? Wie werden Verwundbarkeiten standardmäßig beschrieben? Wer ist Betreiber von CVE und welche Organisationen finanzieren das Projekt?
|
## a) Was ist das Hauptziel von CVE? Wie werden Verwundbarkeiten standardmäßig beschrieben? Wer ist Betreiber von CVE und welche Organisationen finanzieren das Projekt?
|
||||||
|
|
||||||
### Betreiber
|
### Betreiber
|
||||||
- Der Betreiber ist die Mitre Corporation, eine Non-Profit-Organisation, die aus Verschiedenen Forschungsinstituten besteht und sich aus einer Abspaltung vom MIT gebildet hat. Ihr „Auftraggeber“ sind die USA.
|
|
||||||
Eines ihrer Institute ist z.B. das „Homeland Security Systems Engineering and Development Institute “.
|
* Der Betreiber ist die Mitre Corporation, eine Non-Profit-Organisation, die aus Verschiedenen Forschungsinstituten besteht und sich aus einer Abspaltung vom MIT gebildet hat. Ihr „Auftraggeber“ sind die USA.
|
||||||
|
Eines ihrer Institute ist z.B. das „Homeland Security Systems Engineering and Development Institute “.
|
||||||
|
|
||||||
### Finanzierung
|
### Finanzierung
|
||||||
- Das CVE-Programm von der MITRE Corporation wird von der CISA (Cybersecurity and Infrastructure Security Agency) finanziert die dem bereits genanntem U.S. Department of Homeland Security.
|
|
||||||
|
* Das CVE-Programm von der MITRE Corporation wird von der CISA (Cybersecurity and Infrastructure Security Agency) finanziert die dem bereits genanntem U.S. Department of Homeland Security.
|
||||||
|
|
||||||
## b) Was umfasst NVD im Vergleich zu CVE und wie werden Verwundbarkeiten standardmäßig beschrieben? Wer ist Betreiber von NVD und welche Organisationen finanzieren das Projekt?
|
## b) Was umfasst NVD im Vergleich zu CVE und wie werden Verwundbarkeiten standardmäßig beschrieben? Wer ist Betreiber von NVD und welche Organisationen finanzieren das Projekt?
|
||||||
|
|
||||||
### NVD
|
### NVD
|
||||||
- NVD baut auf CVE auf und erweitert CVE um z.B. Analysen und Gegenmaßnahmen.
|
|
||||||
- NVD wird vom National Institute of Standards and Technology (NIST) betrieben und unter anderem von der US-Regierung finanziert.
|
* NVD baut auf CVE auf und erweitert CVE um z.B. Analysen und Gegenmaßnahmen.
|
||||||
- Beurteilt werden die Verwundbarkeiten mit Hilfe des Common Vulnerability Scoring System (CVSS), einem einheitlichen System für Beurteilung
|
* NVD wird vom National Institute of Standards and Technology (NIST) betrieben und unter anderem von der US-Regierung finanziert.
|
||||||
- Weitere bereitgestellte Informationen sind:
|
* Beurteilt werden die Verwundbarkeiten mit Hilfe des Common Vulnerability Scoring System (CVSS), einem einheitlichen System für Beurteilung
|
||||||
- Betroffene Software bzw. Versionen
|
* Weitere bereitgestellte Informationen sind:
|
||||||
- Schweregrad
|
* Betroffene Software bzw. Versionen
|
||||||
- Auswirkungen
|
* Schweregrad
|
||||||
- Gegenmaßnahmen
|
* Auswirkungen
|
||||||
|
* Gegenmaßnahmen
|
||||||
|
|
||||||
|
## c)
|
||||||
|
nvd angegebener score: 7,5
|
||||||
|
|
||||||
|
## d)
|
||||||
|
|
||||||
|
#### Was ist das Ziel von CWE?:
|
||||||
|
Häufig vorkommende schwachstellen zu vermeiden.
|
||||||
|
Sie bieten eine liste von den häufigsten schwachstellen für software firmware hardward und servies.
|
||||||
|
|
||||||
|
#### Wie werden Verwundbarkeitstypen standardmäßig beschrieben?:
|
||||||
|
|
||||||
|
|
||||||
|
Jede schwachstelle wird kategoresiert und hat jeweils folgende eigenschaften:
|
||||||
|
\- WeaknessID
|
||||||
|
\- Abstraktion Typ
|
||||||
|
\- Struktur Typ
|
||||||
|
\- Beschreibung
|
||||||
|
|
||||||
|
Und noch einige, die nicht immer auftauchen wie:
|
||||||
|
\- Erweiterte beschreibung
|
||||||
|
\- Alternativer Name
|
||||||
|
\- Abhängigkeiten
|
||||||
|
\- Beispiele
|
||||||
|
|
||||||
|
#### Wer ist Betreiber von CWE?
|
||||||
|
CWE wird von seiner communinty betrieben. Darunter gehören auch Apple, Intel und Microsoft
|
||||||
|
|
||||||
## e) Was für ein Verwundbarkeitstyp ist Heartbleed laut CWE?
|
## e) Was für ein Verwundbarkeitstyp ist Heartbleed laut CWE?
|
||||||
|
|
||||||
CWE-126: Buffer Over-read
|
CWE-126: Buffer Over-read
|
||||||
- Entsteht, wenn eine Anwendung versucht, Daten von einem Puffer oder Speicherbereich zu lesen, der kleiner ist als die angeforderte Datenmen
|
|
||||||
- Führt dazu, dass die Anwendung auf Speicher zugreift, der außerhalb des zugewiesenen Bereichs liegt und möglicherweise Daten liest, die nicht für sie vorgesehen sind
|
|
||||||
- Kann zu unerwartetem Verhalten, einschließlich Abstürzen oder Sicherheitslücken führen
|
|
||||||
|
|
||||||
|
* Entsteht, wenn eine Anwendung versucht, Daten von einem Puffer oder Speicherbereich zu lesen, der kleiner ist als die angeforderte Datenmen
|
||||||
|
* Führt dazu, dass die Anwendung auf Speicher zugreift, der außerhalb des zugewiesenen Bereichs liegt und möglicherweise Daten liest, die nicht für sie vorgesehen sind
|
||||||
|
* Kann zu unerwartetem Verhalten, einschließlich Abstürzen oder Sicherheitslücken führen
|
||||||
|
|
||||||
## f) Lernen Sie weitere Details zu Heartbleed, bspw. hinsichtlich Gegenmaßnahmen, Exploits, betroffener Software und ähnlichen Verwundbarkeiten.
|
## f) Lernen Sie weitere Details zu Heartbleed, bspw. hinsichtlich Gegenmaßnahmen, Exploits, betroffener Software und ähnlichen Verwundbarkeiten.
|
||||||
|
|
||||||
- Betroffene Software: Heartbleed betraf die OpenSSL-Bibliothek, die von vielen Webservern, E-Mail-Servern, VPN-Gateways und anderen Netzwerkdiensten verwendet wird.
|
Betroffene Software: Heartbleed betraf die OpenSSL-Bibliothek, die von vielen Webservern, E-Mail-Servern, VPN-Gateways und anderen Netzwerkdiensten verwendet wird.
|
||||||
|
|
||||||
- Gegenmaßnahmen:
|
|
||||||
|
|
||||||
- Als Unternehmen/Seitenbetriber: Um gegen Heartbleed geschützt zu sein, mussten betroffene Organisationen schnell reagieren, indem sie ihre OpenSSL-Versionen auf eine nicht anfällige Version aktualisierten.
|
|
||||||
- Als Entwickler: eine if-Abfrage
|
|
||||||
|
|
||||||
- Exploits
|
|
||||||
- Entschlüsselung archivierter Daten
|
|
||||||
- Entschlüsselung während der Webserver-Verbindungsaufnahme
|
|
||||||
- Entschlüsselung der Verbindungsaufnahme an VoIP-Telefonen, Netzwerkdruckern und Routern
|
|
||||||
|
|
||||||
|
Gegenmaßnahmen:
|
||||||
- Ähnliche Schwachstellen, wie Heartbleed, die auf unsicheren Speicheroperationen beruhen:
|
|
||||||
|
* Als Unternehmen/Seitenbetriber: Um gegen Heartbleed geschützt zu sein, mussten betroffene Organisationen schnell reagieren, indem sie ihre OpenSSL-Versionen auf eine nicht anfällige Version aktualisierten.
|
||||||
- "Buffer Overflow"-Schwachstelle
|
* Als Entwickler: eine if-Abfrage
|
||||||
- Schwachstelle, die auftritt, wenn ein Programm versucht, mehr Daten in einen Puffer oder Speicherbereich zu schreiben, als dieser aufnehmen kann.
|
|
||||||
- "Catastrophic Backtracking" in OpenSSL (CVE-2015-0291),
|
Exploits
|
||||||
- ermöglichte Angreifern, den SSL-Server durch Senden eines speziell gestalteten Pakets zum Absturz zu bringen
|
|
||||||
|
* Entschlüsselung archivierter Daten
|
||||||
# 1.2
|
* Entschlüsselung während der Webserver-Verbindungsaufnahme
|
||||||
|
* Entschlüsselung der Verbindungsaufnahme an VoIP-Telefonen, Netzwerkdruckern und Routern
|
||||||
|
|
||||||
|
Ähnliche Schwachstellen, wie Heartbleed, die auf unsicheren Speicheroperationen beruhen:
|
||||||
|
|
||||||
|
* "Buffer Overflow"-Schwachstelle
|
||||||
|
* Schwachstelle, die auftritt, wenn ein Programm versucht, mehr Daten in einen Puffer oder Speicherbereich zu schreiben, als dieser aufnehmen kann.
|
||||||
|
* "Catastrophic Backtracking" in OpenSSL (CVE-2015-0291),
|
||||||
|
* ermöglichte Angreifern, den SSL-Server durch Senden eines speziell gestalteten Pakets zum Absturz zu bringen
|
||||||
|
|
||||||
|
## 1.2
|
||||||
|
|
||||||
## a) Um welche Verwundbarkeit handelt es sich genau? Um welchen Verwundbarkeitstyp handelt es sich?
|
## a) Um welche Verwundbarkeit handelt es sich genau? Um welchen Verwundbarkeitstyp handelt es sich?
|
||||||
|
|
||||||
@@ -70,59 +101,70 @@ Die Schwachstelle betrifft hauptsächlich Prozessoren von Intel sowie einige ARM
|
|||||||
|
|
||||||
## d) Welche Gegenmaßnahmen wurden ergriffen?
|
## d) Welche Gegenmaßnahmen wurden ergriffen?
|
||||||
|
|
||||||
- Hardware-Hersteller haben Mikrocode-Updates und Firmware-Updates bereitgestellt, um die Anfälligkeit ihrer Chips gegenüber Meltdown zu verringern. Diese Updates beheben nicht den Designfehler, helfen jedoch dabei, die Auswirkungen der Verwundbarkeit zu begrenzen.
|
* Hardware-Hersteller haben Mikrocode-Updates und Firmware-Updates bereitgestellt, um die Anfälligkeit ihrer Chips gegenüber Meltdown zu verringern. Diese Updates beheben nicht den Designfehler, helfen jedoch dabei, die Auswirkungen der Verwundbarkeit zu begrenzen.
|
||||||
- Betriebssystemhersteller haben Sicherheitspatches und Updates veröffentlicht, um ihre Systeme gegen Meltdown zu schützen. Diese Updates beinhalten Kernel Page Table Isolation oder ähnliche Techniken, um den Kernel-Speicher vom Benutzerspeicher zu isolieren und so den Zugriff auf geschützte Speicherbereiche zu verhindern.
|
* Betriebssystemhersteller haben Sicherheitspatches und Updates veröffentlicht, um ihre Systeme gegen Meltdown zu schützen. Diese Updates beinhalten Kernel Page Table Isolation oder ähnliche Techniken, um den Kernel-Speicher vom Benutzerspeicher zu isolieren und so den Zugriff auf geschützte Speicherbereiche zu verhindern.
|
||||||
|
|
||||||
## e)
|
## e)
|
||||||
|
|
||||||
Berechnen Sie den CVSS Score mit dem ”Common Vulnerability Scoring System Calculator Version 3.1“. Welche qualitativen Unterschiede zum CVSS 3.1 Score von Heartbleed können Sie dabei feststellen?
|
Berechnen Sie den CVSS Score mit dem ”Common Vulnerability Scoring System Calculator Version 3.1“. Welche qualitativen Unterschiede zum CVSS 3.1 Score von Heartbleed können Sie dabei feststellen?
|
||||||
|
|
||||||
### Heartbleed:
|
### Heartbleed:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
### Meltdown:
|
### Meltdown:
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
### Angriffsvektor
|
### Angriffsvektor
|
||||||
- Heartbleed: Über das Netzwerk
|
|
||||||
- Meltdown: Lokal
|
* Heartbleed: Über das Netzwerk
|
||||||
### erforderliche Privilegien
|
* Meltdown: Lokal
|
||||||
- Meltdown erfordert niedrige Privilegien
|
|
||||||
- Heartbleed benötigt keine Privilegien
|
### erforderliche Privilegien
|
||||||
|
|
||||||
|
* Meltdown erfordert niedrige Privilegien
|
||||||
|
* Heartbleed benötigt keine Privilegien
|
||||||
|
|
||||||
### CVSS Score
|
### CVSS Score
|
||||||
- Meltdown: Base Score von 5.6(Medium)
|
|
||||||
- Heartbleed: Base Score von 7.5(High)
|
|
||||||
|
|
||||||
|
* Meltdown: Base Score von 5.6(Medium)
|
||||||
|
* Heartbleed: Base Score von 7.5(High)
|
||||||
|
|
||||||
# 1.3
|
## 1.3
|
||||||
|
|
||||||
## HTTP Basics
|
## HTTP Basics
|
||||||
|
|
||||||
### 1
|
### 1
|
||||||
- Name eingeben
|
|
||||||
- Output wird zurückgegeben
|
* Name eingeben
|
||||||
|
* Output wird zurückgegeben
|
||||||
|
|
||||||
### 2
|
### 2
|
||||||
- Mit Untersuchen nachgucken
|
|
||||||
- Network Tab auswälen
|
* Mit Untersuchen nachgucken
|
||||||
- POST request finden (attack2)
|
* Network Tab auswälen
|
||||||
- Im request Tab Daten auslesen
|
* POST request finden (attack2)
|
||||||
|
* Im request Tab Daten auslesen
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
- Alternativ: ZAP interception
|
* Alternativ: ZAP interception
|
||||||
- Schritte von HTTP Proxies durchführen
|
* Schritte von HTTP Proxies durchführen
|
||||||
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## HTTP Proxies
|
## HTTP Proxies
|
||||||
|
|
||||||
### 1
|
### 1
|
||||||
|
|
||||||
- Breakpoint filter erstellen
|
* Breakpoint filter erstellen
|
||||||
- auf Request Header Contains POST setzen
|
* auf Request Header Contains POST setzen
|
||||||
- auf "Submit" drücken
|
* auf "Submit" drücken
|
||||||
- POST mit GET ersetzen
|
* POST mit GET ersetzen
|
||||||
- 'x-request-intercepted:true' einfügen
|
* 'x-request-intercepted:true' einfügen
|
||||||
- "doesn't+matter+really" mit "Requests are tampered easily" ersetzen
|
* "doesn't+matter+really" mit "Requests are tampered easily" ersetzen
|
||||||
- auf "Continue" drücken
|
* auf "Continue" drücken
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@@ -130,37 +172,37 @@ Berechnen Sie den CVSS Score mit dem ”Common Vulnerability Scoring System Calc
|
|||||||
|
|
||||||
### 1
|
### 1
|
||||||
|
|
||||||
- Seite Untersuchen
|
* Seite Untersuchen
|
||||||
- Zu den Console Tab wechseln
|
* Zu den Console Tab wechseln
|
||||||
- webgoat.customjs.phoneHome() eingeben
|
* webgoat.customjs.phoneHome() eingeben
|
||||||
- Die zufällig generierte Zahl abgeben
|
* Die zufällig generierte Zahl abgeben
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
### 2
|
### 2
|
||||||
|
|
||||||
- Seite Untersuchen
|
* Seite Untersuchen
|
||||||
- Zu den Network Tab wechseln
|
* Zu den Network Tab wechseln
|
||||||
- Auf "Go" drücken
|
* Auf "Go" drücken
|
||||||
- POST request finden (der Name ist Network)
|
* POST request finden (der Name ist Network)
|
||||||
- Zum Request Tab wechsel
|
* Zum Request Tab wechsel
|
||||||
- NetworkNum auslesen
|
* NetworkNum auslesen
|
||||||
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
## CIA Triad
|
## CIA Triad
|
||||||
### 1
|
|
||||||
Antworten:
|
|
||||||
- Frage 1
|
|
||||||
- Antwort 3
|
|
||||||
- Frage 2
|
|
||||||
- Antwort 1
|
|
||||||
- Frage 3
|
|
||||||
- Antwort 4
|
|
||||||
- Frage 4
|
|
||||||
- Antwort 2
|
|
||||||
|
|
||||||
|
### 1
|
||||||
|
|
||||||
|
Antworten:
|
||||||
|
|
||||||
|
* Frage 1
|
||||||
|
* Antwort 3
|
||||||
|
* Frage 2
|
||||||
|
* Antwort 1
|
||||||
|
* Frage 3
|
||||||
|
* Antwort 4
|
||||||
|
* Frage 4
|
||||||
|
* Antwort 2
|
||||||
|
|
||||||

|

|
||||||
29
untitled/.gitignore
vendored
Normal file
29
untitled/.gitignore
vendored
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
### IntelliJ IDEA ###
|
||||||
|
out/
|
||||||
|
!**/src/main/**/out/
|
||||||
|
!**/src/test/**/out/
|
||||||
|
|
||||||
|
### Eclipse ###
|
||||||
|
.apt_generated
|
||||||
|
.classpath
|
||||||
|
.factorypath
|
||||||
|
.project
|
||||||
|
.settings
|
||||||
|
.springBeans
|
||||||
|
.sts4-cache
|
||||||
|
bin/
|
||||||
|
!**/src/main/**/bin/
|
||||||
|
!**/src/test/**/bin/
|
||||||
|
|
||||||
|
### NetBeans ###
|
||||||
|
/nbproject/private/
|
||||||
|
/nbbuild/
|
||||||
|
/dist/
|
||||||
|
/nbdist/
|
||||||
|
/.nb-gradle/
|
||||||
|
|
||||||
|
### VS Code ###
|
||||||
|
.vscode/
|
||||||
|
|
||||||
|
### Mac OS ###
|
||||||
|
.DS_Store
|
||||||
8
untitled/.idea/.gitignore
generated
vendored
Normal file
8
untitled/.idea/.gitignore
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# Default ignored files
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
||||||
|
# Editor-based HTTP Client requests
|
||||||
|
/httpRequests/
|
||||||
|
# Datasource local storage ignored files
|
||||||
|
/dataSources/
|
||||||
|
/dataSources.local.xml
|
||||||
6
untitled/.idea/misc.xml
generated
Normal file
6
untitled/.idea/misc.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_20" default="true" project-jdk-name="20" project-jdk-type="JavaSDK">
|
||||||
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
8
untitled/.idea/modules.xml
generated
Normal file
8
untitled/.idea/modules.xml
generated
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/untitled.iml" filepath="$PROJECT_DIR$/untitled.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
6
untitled/.idea/vcs.xml
generated
Normal file
6
untitled/.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
8
untitled/src/Main.java
Normal file
8
untitled/src/Main.java
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
// Press Shift twice to open the Search Everywhere dialog and type `show whitespaces`,
|
||||||
|
// then press Enter. You can now see whitespace characters in your code.
|
||||||
|
public class Main {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
19
untitled/src/StopUhr.java
Normal file
19
untitled/src/StopUhr.java
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
public class StopUhr
|
||||||
|
{
|
||||||
|
private long startTime, stopTime;
|
||||||
|
|
||||||
|
public void start()
|
||||||
|
{
|
||||||
|
startTime = System.nanoTime();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void stop()
|
||||||
|
{
|
||||||
|
stopTime = System.nanoTime();
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getDuration()
|
||||||
|
{
|
||||||
|
return stopTime - startTime;
|
||||||
|
}
|
||||||
|
}
|
||||||
67
untitled/src/Zeitmessung.java
Normal file
67
untitled/src/Zeitmessung.java
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
public class Zeitmessung
|
||||||
|
{
|
||||||
|
static int tuWasCounter = 0;
|
||||||
|
private static double tuwas()
|
||||||
|
{
|
||||||
|
tuWasCounter++;
|
||||||
|
return Math.random();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Linear
|
||||||
|
public static double func1(int n)
|
||||||
|
{
|
||||||
|
double summe = 0;
|
||||||
|
|
||||||
|
for (int a = 0; a < n; a++)
|
||||||
|
summe += tuwas();
|
||||||
|
|
||||||
|
return summe;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Quadratisch
|
||||||
|
public static double func2(int n)
|
||||||
|
{
|
||||||
|
double summe = 0;
|
||||||
|
|
||||||
|
for (int a = 0; a < n; a++)
|
||||||
|
for(int b = 0; b < n; b++)
|
||||||
|
summe += tuwas();
|
||||||
|
|
||||||
|
return summe;
|
||||||
|
}
|
||||||
|
|
||||||
|
// log2(n)
|
||||||
|
public static double func6(int n)
|
||||||
|
{
|
||||||
|
double summe = 0;
|
||||||
|
|
||||||
|
while (n > 0)
|
||||||
|
{
|
||||||
|
summe += tuwas();
|
||||||
|
n /= 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
return summe;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args)
|
||||||
|
{
|
||||||
|
StopUhr uhr = new StopUhr();
|
||||||
|
final int n = 100000;
|
||||||
|
tuWasCounter = 0;
|
||||||
|
uhr.start();
|
||||||
|
func1(n);
|
||||||
|
uhr.stop();
|
||||||
|
System.out.println("func1 "+"n="+n+" Zeit:"+uhr.getDuration()+" tuWasCounter:" + tuWasCounter);
|
||||||
|
tuWasCounter = 0;
|
||||||
|
uhr.start();
|
||||||
|
func2(n);
|
||||||
|
uhr.stop();
|
||||||
|
System.out.println("func2 "+"n="+n+" Zeit:"+uhr.getDuration()+" tuWasCounter:" + tuWasCounter);
|
||||||
|
tuWasCounter = 0;
|
||||||
|
uhr.start();
|
||||||
|
func6(n);
|
||||||
|
uhr.stop();
|
||||||
|
System.out.println("func6 "+"n="+n+" Zeit:"+uhr.getDuration()+" tuWasCounter:" + tuWasCounter);
|
||||||
|
}
|
||||||
|
}
|
||||||
11
untitled/untitled.iml
Normal file
11
untitled/untitled.iml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="JAVA_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||||
|
<exclude-output />
|
||||||
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
||||||
Reference in New Issue
Block a user