【发布时间】:2014-11-03 12:05:37
【问题描述】:
我只是想知道如果在程序中使用函数会加快执行时间?
说,我有一个简单的二分查找程序
#include <stdio.h>
int main()
{
int c, first, last, middle, n, search, array[100];
scanf("%d",&n);
for ( c = 0 ; c < n ; c++ )
scanf("%d",&array[c]);
scanf("%d",&search);
first = 0;
last = n - 1;
middle = (first+last)/2;
while( first <= last )
{
if ( array[middle] < search )
first = middle + 1;
else if ( array[middle] == search )
{
printf("%d found at location %d.\n", search, middle+1);
break;
}
else
last = middle - 1;
middle = (first + last)/2;
}
if ( first > last )
printf("Not found! %d is not present in the list.\n", search);
return 0;
}
和相同的程序使用函数。
我刚刚添加了功能
int binarysearch(int *array,int m,int n)
{
int l,u,mid;
l=0,u=n-1;
while(l<=u)
{
mid=(l+u)/2;
if(m==a[mid])
{
c=1;
break;
}
else if(m<a[mid])
{
u=mid-1;
}
else
l=mid+1;
}
return mid;
}
代码仅用于理解目的!
现在哪个会跑得更快?使用函数或迭代程序进行编程?我说的一般不是任何特定的程序。
【问题讨论】:
-
通常情况下,这取决于...
-
使用有助于使代码可读和可维护的函数。不关心他们的速度。无论您的算法是 O(n)、O(log n) 等,都会对您的程序速度产生 999999 倍的影响。
-
@Blackhat002 好吧,对您的问题唯一合理的答案是,有时函数会使事情变慢,有时它会使事情变快。这不是一个非常有用的答案,但那是因为它不是一个非常有用的问题。
-
@nos 我不同意。我认为这是一个有用的问题。广泛但有用。
-
因过于宽泛而关闭。你可以写一本关于这个主题的书。这很好地表明了这个问题太宽泛了。
标签: c++ c performance