package ch.fhnw.algd1.attestation3;
/**
* Created by Kelvin on 15-Apr-16.
*/
public class Exercise2 {
public static void main(String[] args) {}
// Exercise 2a
public static double[] insertSort(double[] arr) {
int n = arr.length;
for (int f = 1; f < n; f++) {
double x = arr[f];
int e = f-1;
while (e >= 0 && (arr[e] > x || Double.isNaN(arr[e]))) {
arr[e+1] = arr[e];
e--;
}
arr[e+1] = x;
}
return arr;
}
// Exercise 2b
public static int binarySearch(double[] arr, double s) {
int min = 0;
int max = arr.length - 1;
while (max >= min) {
int p = min + max >>> 1;
//int p = min + ((max - min)/2);
if (Double.compare(s, arr[p]) == -1) {
max = p-1;
} else if (Double.compare(s, arr[p]) == 1) {
min = p+1;
} else {
return p;
}
}
return -1;
}
}