Was ist die zeitliche Komplexität dieser Funktion? Die Funktion gibt den kleinsten Wert im Array zurück. Ich denke, es ist O(N)
, aber ich kann es nicht beweisen. Jede Hilfe wäre willkommen!Ist die zeitliche Komplexität dieser Funktion O (N)?
int[] foo(int arr[], int N)
{
int k = 1;
while(k < N)
{
for(int i = 0; i+k<N; i+=2*k)
{
if(arr[k] > arr[i+k])
{
swap(arr[i], arr[k+i]); //swap values in arr[i] and arr[k+1]
}
}
k = k*2;
}
return arr[0];
}
Es scheint 'O (NlogN)' – SomeDude
Bitte verbessern Sie Ihre Frage –
Es sieht aus wie O (N) zu mir zu sein. – Beta