假定循环内用时较多,fun1比fun2快多少

简介: 假定循环内用时较多,fun1比fun2快多少

运行环境:WinXP VS2005(VC8)

#include <iostream>
using namespace std ;
#include <time.h>
#define WAN (10000)
const int iNum = WAN*300;
void fun1(int* p)
{
    for( int i = 0 ; i < iNum ; i++ )
    {
        p[i] = i;
    }
}
void fun2(int* p)
{
    for( int i = 0 ; i < iNum ; i+= 4  )
    {
        p[i] = i;
        p[i+1] = i+1;
        p[i+2] = i+2;
        p[i+3] = i+3 ;
    }
}
void Test()
{
    int * p = new int[iNum];
    long x1 = clock();
    fun1(p);
    long x2 = clock();
    fun2(p);
    long x3 = clock();
    cout << (x2-x1) << "豪秒 " << (x3-x2) << "豪秒" << endl;
    delete [] p ;
}
void main()
{
   Test();
   Test();
   Test();
   Test();
   Test();
}

循环次数(iNum )由3亿改到300万次,fun1快约16毫秒。约快50%

47豪秒 31豪秒

47豪秒 31豪秒

47豪秒 31豪秒

47豪秒 31豪秒

47豪秒 31豪秒

把fun1,fun2的用时改多些

#include <iostream>
using namespace std ;
#include <time.h>
#include <math.h>
#define WAN (10000)
const int iNum = WAN*300;
#define NN(n) (pow((float)n,100))
void fun1(int* p)
{
    for( int i = 0 ; i < iNum ; i++ )
    {
        p[i] = NN(i);
    }
}
void fun2(int* p)
{
    for( int i = 0 ; i < iNum ; i+= 4  )
    {
        p[i] = NN(i);
        p[i+1] = NN(i+1);
        p[i+2] = NN(i+2);
        p[i+3] = NN(i+3) ;
    }
}
void Test()
{
    int * p = new int[iNum];
    long x1 = clock();
    fun1(p);
    long x2 = clock();
    fun2(p);
    long x3 = clock();
    cout << (x2-x1) << "豪秒 " << (x3-x2) << "豪秒" << endl;
    delete [] p ;
}
void main()
{
   Test();
   Test();
   Test();
   Test();
   Test();
}

11781豪秒 12203豪秒

11922豪秒 11921豪秒

12219豪秒 11688豪秒

11625豪秒 11641豪秒

11703豪秒 11734豪秒

结论:用时基本相同


相关文章
实现 fizzBuzz 函数,参数 num 与返回值的关系如下
实现 fizzBuzz 函数,参数 num 与返回值的关系如下
|
4月前
|
语音技术 Python
语音识别,continue和break的使用,循环综合案例,完成发工资案例,函数的初体验,len()是内置好的函数,def 函数名 def xxx(),函数的定义 def xxx() ,调用函数
语音识别,continue和break的使用,循环综合案例,完成发工资案例,函数的初体验,len()是内置好的函数,def 函数名 def xxx(),函数的定义 def xxx() ,调用函数
|
C++ Windows
VS2019错误:_main已经在.obj中定义,找到一个或多个重定义符号
VS2019错误:_main已经在.obj中定义,找到一个或多个重定义符号
1783 0
|
C语言
C语言求x的y次方,fun函数实现x的y次方的计算,main函数中调用fun函数
C语言求x的y次方,fun函数实现x的y次方的计算,main函数中调用fun函数
193 0
写一个函数,每调用一次这个函数,就会将num的值增加1
写一个函数,每调用一次这个函数,就会将num的值增加1
117 0
写一个函数,每调用一次这个函数,就会将num的值增加1
复习C部分:1.写一个函数,实现整形有序数组二分查找 2.写一个函数,每调用一次这个函数,就会将num的值增加1 3.函数的嵌套调用和链式访问 4. 函数递归----自己调用自己
复习C部分:1.写一个函数,实现整形有序数组二分查找 2.写一个函数,每调用一次这个函数,就会将num的值增加1 3.函数的嵌套调用和链式访问 4. 函数递归----自己调用自己
82 0
复习C部分:1.写一个函数,实现整形有序数组二分查找 2.写一个函数,每调用一次这个函数,就会将num的值增加1 3.函数的嵌套调用和链式访问 4. 函数递归----自己调用自己
用int main检验任意函数,如(func)函数
用int main检验任意函数,如(func)函数
99 0
用int main检验任意函数,如(func)函数
|
存储 Python
print()函数和变量与赋值
相信大家看了昨天的教程都已经将python成功的安装到自己的电脑上了,那接下来我们今天就来学习我们python中的第一个知识点——print()函数
190 0
print()函数和变量与赋值