2013-11-16 4 views
1

Я пытаюсь выяснить, каково время работы следующего алгоритма.время работы алгоритма

public static int displayOccu(int[] a, int n, int i) 
{ 
    if(i == a.length) 
     return 0; 
    else if(a[i] == n) 
     return 1+displayOcc(a,n,i+1); 
    else 
     return displayOcc(a,n,i+1); 
} 

Я думал, что это будет длина, но я не знаю, как это проверить! Я прав?

ответ

2

O(n) - вы повторяете массив только один раз: возможно, начиная с i=0 и перемещая один индекс на каждый рекурсивный вызов, до тех пор, пока не будет достигнут конец массива.

1
public static void main(String... args){ 

    long startTime = System.currentTimeMillis(); 

    //your method call here 

    long endTime = System.currentTimeMillis(); 

    System.out.println("The algorithm took "+ (endTime-startTime)+" milliseconds"); 

} 
+0

Используя этот код, я получаю 0 миллисекунд – Rakim

+0

Каков был вызов метода? –

Смежные вопросы