Je trouve difficile de calculer la complexité du temps du programme ci-dessous. S'il vous plaît donner quelques suggestions?Comment pouvons-nous calculer la complexité du temps du programme ci-dessous:
class Solution {
int i=0,j=1,k,m;
public int[] twoSum(int[] nums, int target) {
int sum;
boolean flag=false;
int arr[] = new int[2];
for(k=j;k<nums.length;k++){
sum=nums[i]+nums[k];
if(sum==target){
flag=true;
m=k;
break;
}
}
if(flag==false){
i++;
j++;
twoSum(nums,target);
}
arr[0]=i;
arr[1]=m;
return arr;
}
}
J'ai écrit ce code pour retourner les indices des deux nombres tels qu'ils ajoutent à une cible spécifique. chaque entrée aurait exactement une solution. maintenant je dois calculer les complexités pour vérifier et soumettre le code
Avez-vous examiné comment calculer les complexités d'un algorithme? Peut être un bon endroit pour commencer. Votre message ne montre aucune recherche antérieure, et semble actuellement être une demande plutôt qu'une question réelle. Consultez le [centre d'aide] (https://stackoverflow.com/help) pour savoir comment publier des questions. –
Vérifiez ceci: https://stackoverflow.com/questions/16232629/what-is-time-complexity-and-how-to-find-it –
J'ai essayé d'y jeter un coup d'œil. Je suis capable de calculer quand il s'agit de boucle simple ou double boucle ou binaire mais quand il s'agit de hachage ou de récursion ou 2-3 structures à la fois, je semble toujours échouer à atteindre pour corriger la complexité.It était une question à vérifier quelle serait la complexité de ce code, donc je peux l'optimiser – shivoham