Форум программистов, компьютерный форум, киберфорум
Наши страницы

C для начинающих

Войти
Регистрация
Восстановить пароль
 
pavlintseva
1 / 1 / 0
Регистрация: 16.02.2011
Сообщений: 34
#1

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

25.02.2011, 17:11. Просмотров 712. Ответов 2
Метки нет (Все метки)

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

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#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. привет Борису Игоревичу
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2011, 17:11
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сравнить функции(рекурсивную и итерационную) по скорости выполнения для больших чисел (C (СИ)):

Написать рекурсивную и итерационную функцию возведения числа в степень. Сравнить работы программ - C (СИ)
-Написать рекурсивную функцию возведение вещественного числа в целую степень - Написать итерационную функцию возведение числа в степень...

Преобразовать итерационную функцию в рекурсивную. Проверка на попарное различие цифр в числе - C (СИ)
bool T(int buf){ bool flag=true; while(buf&gt;0 &amp;&amp; flag){ int x=buf%10; buf/=10; int bufb=buf; while(bufb&gt;0 &amp;&amp; flag){ ...

Разработать рекурсивную функцию для вычисления значения функции Аккермана для неотрицательных чисел n и m - Pascal ABC
Разработать рекурсивную функцию:для вычисления значения функции Аккермана для неотрицательных чисел n и m. Функция Аккермана определяется...

Реализуйте итерационную версию функции, которая реализует алгоритм пузырьковой сортировки над списком чисел - Lisp
Реализуйте итерационную версию функции, которая реализует алгоритм пузырьковой сортировки над списком чисел.

используя рекурсивную реализацию функции для чисел фибоначчи доказать Fn + 1Fn - 1 - Fn2 = (- 1)n (Кассини)) - C++
используя рекурсивную реализацию функции для чисел фибоначчи доказать Fn + 1Fn - 1 - Fn2 = (- 1)n (Кассини)) #include...

Оптимизация кода для повышения скорости выполнения? - VBA
Есть ли какая возможность в VBA замера производительности как в 1С с указанием относительного времени исполнения отдельных строк кода, что...

2
asics
Freelance
Эксперт С++
2854 / 1789 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
25.02.2011, 17:23 #2
C
1
2
3
4
5
6
#include<windows.h>
 
double start = GetTickCount();
//Действие
double finish = GetTickCount();
finish - start; // время
Добавлено через 9 минут
Или так
C
1
2
3
4
5
6
7
#include <time.h>
 
//...
const clock_t start = clock();
// Действие которые надо измерить
const double duration = double(clock() - start) / CLOCKS_PER_SEC;
//...
0
pavlintseva
1 / 1 / 0
Регистрация: 16.02.2011
Сообщений: 34
25.02.2011, 18:14  [ТС] #3
C
1
2
3
4
5
6
7
8
9
10
11
 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);
одни нули выводит
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.02.2011, 18:14
Привет! Вот еще темы с ответами:

Посторочное введение параметров из файла в виде чисел для выполнения функции - Java SE
Здравствуйте, форумчане. Возникла следующая проблема, надеюсь на вашу помощь. Суть задачи такая: Вывести на экран и, одновременно, в...

Написать функции для выполнения операций над одномерным массивом целых чисел - C++
Написать функции для выполнения операций над одномерным массивом целых чисел: • определить среднее арифметическое отрицательных элементов...

В заданной программе сделать вместо рекурсивной функции - итерационную - C++
Здравствуйте. Помогите разобраться как в следующей программе сделать вместо рекурсивной функции - итерационную. Программа выводит...

Написать рекурсивную и не рекурсивную функции вычисления полинома Чебышева первого ряда: - C++
Написать рекурсивную и не рекурсивную функции вычисления полинома Чебышева первого ряда: T0(x)=1;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru