diff --git a/u13/.classpath b/u13/.classpath
new file mode 100644
index 0000000..78913f0
--- /dev/null
+++ b/u13/.classpath
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/u13/.gitignore b/u13/.gitignore
new file mode 100644
index 0000000..ae3c172
--- /dev/null
+++ b/u13/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/u13/.project b/u13/.project
new file mode 100644
index 0000000..ce00cdb
--- /dev/null
+++ b/u13/.project
@@ -0,0 +1,17 @@
+
+
+ u13
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
diff --git a/u13/.settings/org.eclipse.jdt.core.prefs b/u13/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..8c9943d
--- /dev/null
+++ b/u13/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,14 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=17
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=17
diff --git a/u13/src/de/hsh/zahlenarraytest/Main.java b/u13/src/de/hsh/zahlenarraytest/Main.java
new file mode 100644
index 0000000..efb9e97
--- /dev/null
+++ b/u13/src/de/hsh/zahlenarraytest/Main.java
@@ -0,0 +1,18 @@
+package de.hsh.zahlenarraytest;
+
+import de.hsh.prog.zahlenarray.ZahlenPruefer;
+
+/**
+ * Main-Klasse zum Testen der zarr Klassen
+ * @author p8q-yhw-u1
+ *
+ */
+public class Main {
+ public static void main(String[] args) {
+ MeinZahlenarray array= new MeinZahlenarray(10000, 500000);
+ int anzahl= ZahlenPruefer.anzahlVerschiedene(array);
+ System.out.println("Anzahl: "+anzahl);
+ System.out.println("istEnthalten verbraucht durchschnittlich "
+ +1000*array.getDurchschnittlicheAbfragezeit()+" µs");
+ }
+}
\ No newline at end of file
diff --git a/u13/src/de/hsh/zahlenarraytest/MeinZahlenarray.java b/u13/src/de/hsh/zahlenarraytest/MeinZahlenarray.java
new file mode 100644
index 0000000..077ec1a
--- /dev/null
+++ b/u13/src/de/hsh/zahlenarraytest/MeinZahlenarray.java
@@ -0,0 +1,58 @@
+package de.hsh.zahlenarraytest;
+
+import java.util.Arrays;
+
+import de.hsh.prog.zahlenarray.Zahlenarray;
+
+/**
+ * Verbesserung der Zahlenarray Klasse für Zeitmessung und Optimierung
+ * @author p8q-yhw-u1
+ *
+ */
+public class MeinZahlenarray extends Zahlenarray {
+
+ private Zeitmesser zm;
+ private int[] zahlen;
+
+ private int abfragen;
+
+ /**
+ * Initialisiert ein sortiertes Zahlenarray
+ * @param anzahl Größe des Arrays
+ * @param max Obergrenze der Zufallszahlen mit denen das Array gefüllt wird
+ */
+ public MeinZahlenarray(int anzahl, int max) {
+ super(anzahl, max);
+
+ this.zm = new Zeitmesser();
+
+ this.zahlen = super.getZahlenArray();
+
+ zm.start();
+ Arrays.sort(zahlen);
+ zm.stop();
+ }
+
+ /**
+ * Gibt zurück, ob eine Zahl i mindestens einmal im Array vorhanden ist
+ */
+ @Override
+ public boolean istEnthalten(int i) {
+ this.zm.start();
+ boolean result = Arrays.binarySearch(zahlen, i) >= 0;
+ this.zm.stop();
+
+ this.abfragen++;
+
+ return result;
+ }
+
+ /**
+ * Gibt die durchschnittliche Abfragezeit der istEnthalten Funktion zurück
+ * @return
+ */
+ public double getDurchschnittlicheAbfragezeit() {
+ return (double) this.zm.getGemesseneGesamtzeit() / this.abfragen;
+ }
+
+}
diff --git a/u13/src/de/hsh/zahlenarraytest/Zeitmesser.java b/u13/src/de/hsh/zahlenarraytest/Zeitmesser.java
new file mode 100644
index 0000000..09a28c9
--- /dev/null
+++ b/u13/src/de/hsh/zahlenarraytest/Zeitmesser.java
@@ -0,0 +1,43 @@
+package de.hsh.zahlenarraytest;
+
+/**
+ * Klasse zum Messen von Zeit in Milisekunden
+ * @author p8q-yhw-u1
+ *
+ */
+public class Zeitmesser {
+
+ private boolean running = false;
+
+ private long startTime;
+ private long sumTime = 0;
+
+ /**
+ * Startet eine Zeitmessung
+ */
+ public void start() {
+ if (this.running) throw new IllegalStateException("Zeitmessung läuft bereits.");
+
+ this.running = true;
+ this.startTime = System.currentTimeMillis();
+ }
+
+ /**
+ * Beendet eine Zeitmessung
+ */
+ public void stop() {
+ if (! this.running) throw new IllegalStateException("Zeitmessung bereits gestoppt.");
+
+ this.running = false;
+ this.sumTime += System.currentTimeMillis() - this.startTime;
+ }
+
+ /**
+ * Liefert die Summe aller beendeten Zeitmessungen
+ * @return Summe aller beendeten Zeitmessungen
+ */
+ public long getGemesseneGesamtzeit() {
+ if (this.running) throw new IllegalStateException("Zeitmessung läuft noch.");
+ return this.sumTime;
+ }
+}