【发布时间】:2016-12-03 14:31:24
【问题描述】:
在 2D 向量和 2D 数组中交换两行的复杂度是多少,我测试了两者的时间复杂度,似乎在向量中交换几乎是O(1),但在数组中的工作速度较慢,那么真正的复杂性是什么,为什么不同的?
在数组中(非常慢):
int arr[N][N];
// input the array elements
while (q--) { // number of queires
int x, y;
scanf("%d %d", &x, &y);
swap(arr[x], arr[y]);
}
在向量中使用上面相同的代码,但我不使用int arr[N][N],而是使用vector<<vector>>
【问题讨论】:
-
我认为您混淆了复杂性和实验结果的概念 - 测试它们时哪个更快?
-
当我运行这两个代码时,向量运行得更快,我的意思是就输出结果而言。
-
顺便说一句,希望你不要在实际代码中使用那些
scanf调用。 -
@ChristianHackl 为什么?
标签: c++ vector stl time-complexity swap