From 91c0e69df6dfb35f339bc88cb01f99a6b381f071 Mon Sep 17 00:00:00 2001 From: jutta Date: Sun, 15 Nov 2020 17:47:26 +0100 Subject: [PATCH] refactoring --- .idea/.gitignore | 3 ++ .idea/misc.xml | 6 ++++ .idea/modules.xml | 8 ++++++ .idea/vcs.xml | 6 ++++ GDP-Uebungen.iml | 11 ++++++++ GDP_Gesamt/src/Uebungen/Uebung5/Aufgabe4.java | 28 ++++++++++--------- 6 files changed, 49 insertions(+), 13 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 GDP-Uebungen.iml 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; }