Arrays 数组中数组的排序alghoritm时间复杂度?

Arrays 数组中数组的排序alghoritm时间复杂度?,arrays,algorithm,Arrays,Algorithm,所以这一次真的让我很困惑,让我陷入了困境!如果我们有一个类似于矩阵的数组,其中有n个列,但是现在对于棘手的部分,我们有一些其他的东西,或者等于n个行,让我们称之为m 在这种情况下,我们必须搜索n*m个索引,我知道如果我们的行和列都等于n*n,它只会在^2上,但在我的情况下,对于n*m,最坏的情况是在*m上还是在^2上。我的大脑不能理解这一点的原因是,On*m是一个线性函数,而另一个是指数函数,但是如果m等于或大于n呢?那么完成这项任务就需要同样的时间甚至更长的时间。。。那么我到底错过了什么O它取

所以这一次真的让我很困惑,让我陷入了困境!如果我们有一个类似于矩阵的数组,其中有n个列,但是现在对于棘手的部分,我们有一些其他的东西,或者等于n个行,让我们称之为m


在这种情况下,我们必须搜索n*m个索引,我知道如果我们的行和列都等于n*n,它只会在^2上,但在我的情况下,对于n*m,最坏的情况是在*m上还是在^2上。我的大脑不能理解这一点的原因是,On*m是一个线性函数,而另一个是指数函数,但是如果m等于或大于n呢?那么完成这项任务就需要同样的时间甚至更长的时间。。。那么我到底错过了什么O

它取决于m和n的值。如果m和n没有任何界,那么Onm的复杂性比^2更容易解释

如果m或n有一个界,你可以在复杂性项中应用这个上界来简化它。例如,如果你知道m是常数,你可以说复杂性是开的。或者m的上界是n^2,复杂性的简单形式是Om sqrtm或On^3


注意,在最后一种情况下,最好编写Omn,除非m=\Thetan^2。换句话说,在这种情况下,你有一个m的上界,为了说明更多可解释的复杂性,最好写Omn,除非你有一个与上界成比例的紧下界,并且这个关系可以用θ符号来解释,就像你在上面的例子中发现的那样。

那么问题出在哪里呢?要么m是常数,要么m增长。如果m随着n的大小增长,那么mxn不是线性的。除非你知道m和n是如何关联的,否则你能说的最好的是在x上。在^2上不是指数的。它是二次的。O2^n是指数型的。