这些复杂性类答案是否正确?

时间:2016-03-04 01:05:03

标签: algorithm big-o time-complexity

因此,这里的第一组是我计算的和我推断的内容。

尺寸: 1000 ,时间: .1138 ,每项操作: .0001138

尺寸: 2000 ,时间: .4586 ,每项操作: .0002293

尺寸: 4000 ,时间: 1.904 ,每项操作: .0004760

尺寸: 8000 ,时间: 7.456 ,每项操作: .0009320

- > 复杂性类(每个操作):每次大小增长2倍时,时间增长4倍。我相信这是O(N ^ 2)。

在修改了一些类以查看性能如何变化之后,下一组是下一组。

尺寸: 1000 ,时间: .1266 每项操作: .0001266

尺寸: 2000 ,时间: .5366 每项操作: .0002683

尺寸: 4000 ,时间: 2.221 每项操作: .0005552

尺寸: 8000 ,时间: 8.811 每项操作: .0011013

- > 复杂性类(每个操作):每次大小增加2时,时间增加4,因此这也是O(N ^ 2)的复杂性类别?

1 个答案:

答案 0 :(得分:0)

你的答案是不一致的 - 每个操作的时间复杂度实际上是O(N);但总时间复杂度类确实是O(N ^ 2)

更简单的检查方法是绘制log(时间)与log(大小)的关系图,并计算梯度。这样做可以避免必须处理乘法常数。

对于第一组Excel给出O(N ^ 2.031),对于第二组O(N ^ 2.082)。非常接近模型值。