Complexités temporelles Big-O pour les fonctions PHP
Cet article présente une compilation des complexités temporelles Big-O théoriques et pratiques pour certaines des fonctions PHP les plus couramment utilisées. dans les fonctions.
Fonctions de recherche
- isset( $array[$index] ) et array_key_exists : bien qu'elles soient classées comme O(n), ces fonctions effectuent des recherches de hachage proches de O(1).
- in_array : effectue une recherche linéaire dans le tableau, ce qui entraîne une complexité O(n).
- array_search : similaire à in_array, mais renvoie la valeur, conduisant à une complexité O(n).
File d'attente Fonctions
- array_push : O(∑ var_i)
- array_pop : O(1)
- array_shift : O(n)
- array_unshift : O (n ∑ var_i)
Intersection, union et soustraction de tableau
- array_intersect_key : O(Max(param_i_size) * ∑param_i_count) pour une intersection à 100 %, ou O(∑param_i_size) pour 0% intersection.
- array_intersect : O(n^2 * ∑param_i_count) pour 100 % d'intersection, ou O(n^2) pour 0 % d'intersection.
- array_intersect_assoc : similaire à array_intersect_key.
- array_diff : O(π param_i_size) pour tous les paramètres.
- array_diff_key : O(∑ param_i_size) pour tous les paramètres non égaux au premier.
- array_merge : O(∑ array_i) pour tous les paramètres sauf le premier.
- (union) : O(n) pour la seconde array.
- array_replace : O(∑ array_i) pour tous les paramètres.
Fonctions aléatoires
- shuffle : O(n)
- array_rand : O(n)
Big-O évident Fonctions
- array_fill, array_fill_keys : O(n)
- plage : O(n)
- array_splice, array_slice : O(longueur de décalage)
- array_keys, array_values : O(n)
- array_reverse : O(n)
- array_pad : O(pad_size)
- array_flip : O(n)
- array_sum, array_product : O(n)
- array_reduce : O(n)
- array_filter, array_map : O(n)
- array_chunk, array_combine : O(n)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Déclaration:Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn