diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..6c05f06
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..18ef245
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/GDP-Uebungen.iml b/GDP-Uebungen.iml
new file mode 100644
index 0000000..c77f856
--- /dev/null
+++ b/GDP-Uebungen.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/GDP_Gesamt/src/Uebungen/Uebung5/Aufgabe4.java b/GDP_Gesamt/src/Uebungen/Uebung5/Aufgabe4.java
index 11fae40..35d8028 100644
--- a/GDP_Gesamt/src/Uebungen/Uebung5/Aufgabe4.java
+++ b/GDP_Gesamt/src/Uebungen/Uebung5/Aufgabe4.java
@@ -5,8 +5,8 @@ import java.util.Arrays;
public class Aufgabe4 {
public static void main(String[] args) {
- int timeout = 60; // milliseconds
- int[] testValues = {2,34,134,4,53,11,87,142,742,115,00,411,61,33,23456,2346,12,6234562,4562,4562,56245,62456,2456,24562,1,1345,13451,435,1345,1345,134,51345,134513,451,345};
+ int timeout = 150; // milliseconds
+ int[] testValues = {2,34,134,4,53,11,87,142,742,115,00,411,61,33,23456,2346,12,4562,4562,56245,62456,2456,24562};
Arrays.sort(testValues);
for (int value:testValues){
int result = binarySearch(testValues,value, timeout);
@@ -17,25 +17,27 @@ public class Aufgabe4 {
System.out.println("Searching for " + value);
printArray(inputArray);
int res=-1;
- int rangeMax=inputArray.length-1, rangeMin=0,center,modulo;
+ int rangeMax=inputArray.length-1, rangeMin=0,center=0;
long lastdate=0;
- while(true){
+ while(res < 0){
Date date = new Date();
long deltaT = date.getTime()-lastdate;
if(deltaT>timeout) {
lastdate = date.getTime();
- modulo = (rangeMax - rangeMin) % 2;
- center = rangeMin + (rangeMax - rangeMin) / 2;
- infoGraphic( value, center, rangeMin, rangeMax, modulo, inputArray);
+ infoGraphic(value, center, rangeMin, rangeMax, rangeMax, inputArray);
if (value == inputArray[center]) {
res = center;
- break;
- }
- else if (value <= inputArray[center])
- rangeMax = center-modulo;
- else
- rangeMin = center+modulo;
+ } else if (value > inputArray[center]) {
+ rangeMin = center;
+ center += (rangeMax+1 - rangeMin) / 2; // round up
+ // center = (rangeMax+1 + rangeMin) / 2; // round up
+ } else {
+ rangeMax = center;
+ center -= (rangeMax+1 - rangeMin) / 2;
+ //center -= (center+1 - rangeMin) / 2;
+ // center = (rangeMax + rangeMin) / 2;
}
+ }
}
return res;
}