Насколько быстро работает sqrt() в С++

Я хотел бы спросить о функции sqrt() в библиотеке на С++, у меня есть целое число, и я хочу знать, есть ли целочисленный квадратный корень для этого числа... например, 16 -> 4, и если не вернуть -1 вот функция:

long long SQRT(Long long x)
{
    long long i;
    for (i = 0; i <= x / 2; i++)
      if (i * i == x)
        return i;
    return -1;
}

но это занимает гораздо больше времени, чем sqrt()...может ли кто-нибудь объяснить мне это...заранее спасибо


person Imad Wahid    schedule 19.03.2016    source источник
comment
Ваш метод слишком прямолинеен и, очевидно, будет слишком медленным.   -  person MikeCAT    schedule 19.03.2016
comment
Проверьте эту ссылку: codeproject.com/Articles /69941/. Он показывает несколько способов реализации sqrt и времени выполнения.   -  person Florin Petriuc    schedule 19.03.2016
comment
Чтобы ускорить код, вы можете попробовать метод быстрого обратного квадратного корня.   -  person Szeki    schedule 19.03.2016
comment
Я помечаю этот вопрос как слишком широкий. Быстрая и точная реализация подобных функций требует глубоких знаний числовой математики и/или исчисления. То же самое можно сказать и о многих других функциях <math.h>.   -  person    schedule 19.03.2016
comment
спасибо, я получил ответ по вашим ссылкам ... большое спасибо   -  person Imad Wahid    schedule 19.03.2016