【发布时间】:2021-01-02 07:26:41
【问题描述】:
void fun(int n, int arr[])
{
int i = 0, j = 0;
for(; i < n; ++i)
while(j < n && arr[i] < arr[j])
j++;
}
如果将 arr[i]
【问题讨论】:
标签: algorithm performance loops time-complexity big-o
void fun(int n, int arr[])
{
int i = 0, j = 0;
for(; i < n; ++i)
while(j < n && arr[i] < arr[j])
j++;
}
如果将 arr[i]
【问题讨论】:
标签: algorithm performance loops time-complexity big-o
无论是arr[i] < arr[j] 还是arr[i] <= arr[j],两个答案都具有相同的运行时间O(n),因为i 计数器只会增加n 次,而while loop 条件最多为真ntimes,因为j最多增加n倍(参考j < n)。
【讨论】: