public double sqrt(double x) {
if (x < 0) {
return 0.0;
}
double start = 0;
double end = x;
if (x < 1) {
end = 1;
}
double delta = 0.000000001;
while ((end - start) > delta) {
double mid = start + (end - start) / 2;
if (mid < x / mid) {
start = mid;
} else {
end = mid;
}
}
return start + (end - start) / 2;
}