Сравнить функции(рекурсивную и итерационную) по скорости выполнения для больших чисел - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Вот мой код вычисления Факториала. а как посчитать время выполнения?Функции timeGetTime и GetTickCount и как их применить?
#include<stdio.h>

 int Factorial(int n)
{if (n==1) return (1);
else return(Factorial(n-1)*n);
}
int FactorialNotRec (int n)
{
    int i,f=1;
    for (i=1;i<n+1;i++)
    {
        f=f*i;
    }
    return(f);
}
int main()
{
    int i,n;
    printf("Vvedite n: \n");
    scanf("%d",&n);
    if(n<=0)
    {
        printf("Nevernoe znachenie!\n");
    }
    else {
    printf("Recurs: %d!=%d\n",n,Factorial(n));
    printf("Circle: %d!=%d\n",n,FactorialNotRec(n));
    }
getch()
}
p.s. привет Борису Игоревичу

Решение задачи: «Сравнить функции(рекурсивную и итерационную) по скорости выполнения для больших чисел»

textual
Листинг программы
 double start = GetTickCount();
    int Factorial(int n);
double finish = GetTickCount();
(double)finish - start;
printf("%f\n", finish - start);
 
  double start1 = GetTickCount();
    int FactorialNotRec (int n);
double finish1 = GetTickCount();
(double)finish1 - start1;
printf("%f\n", finish1 - start1);

Объяснение кода листинга программы

  1. double start = GetTickCount(); — Запоминаем время начала выполнения функции
  2. int Factorial(int n); — Дефиниция рекурсивной функции для вычисления факториала
  3. double finish = GetTickCount(); — Запоминаем время окончания выполнения функции
  4. (double)finish - start; — Вычисляем разницу между временем окончания и временем начала выполнения функции
  5. printf(%f\n, finish - start); — Выводим результат на экран
  6. double start1 = GetTickCount(); — Запоминаем время начала выполнения функции
  7. int FactorialNotRec (int n); — Дефиниция итерационной функции для вычисления факториала
  8. double finish1 = GetTickCount(); — Запоминаем время окончания выполнения функции
  9. (double)finish1 - start1; — Вычисляем разницу между временем окончания и временем начала выполнения функции
  10. printf(%f\n, finish1 - start1); — Выводим результат на экран

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4 из 5
Похожие ответы