本文共 1751 字,大约阅读时间需要 5 分钟。
时间复杂度_函数传参、传引用、传指针
实验开始:
#include#include #include using namespace std;#define NODE_SIDE 1000 // 1000~1000000time_t startTime, endTime;struct Node{ int num[NODE_SIDE];};void testByValue(Node a){}void testByReference(Node &a){}void testByPointer(Node *a){}int main(){ long long int TEST_TIME; Node n; n.num[0] = 0; //why int i; for(int j = 1; j <= 1000; j *= 10) //enlarge TEST_TIME { TEST_TIME = 1000000 * j; i = TEST_TIME; startTime = clock(); while(i--) { testByValue(n); } endTime = clock(); cout << "TestByvalue: NODE_SIDE(" << setw(7) << NODE_SIDE << "), TEST_TIME(" << setw(10) << TEST_TIME << "), cost :" << setw(7) << (endTime - startTime) << " ms." << endl; i = TEST_TIME; startTime = clock(); while(i--) { testByReference(n); } endTime = clock(); cout << "TestByReference: NODE_SIDE(" << setw(7) << NODE_SIDE << "), TEST_TIME(" << setw(10) << TEST_TIME << "), cost :" << setw(7) << (endTime - startTime) << " ms." << endl; i = TEST_TIME; startTime = clock(); while(i--) { testByPointer(&n); } endTime = clock(); cout << "TestByPointer: NODE_SIDE(" << setw(7) << NODE_SIDE << "), TEST_TIME(" << setw(10) << TEST_TIME << "), cost :" << setw(7) << (endTime - startTime) << " ms." << endl; } return 0;}