Complexité de l'algorithme de déduplication de tableau PHP : array_unique() : O(n)array_flip() + array_keys() : O(n)foreach boucle : O(n^2)
Explorez la complexité de l'algorithme de déduplication de tableau PHP
Introduction
En PHP, la déduplication de tableau est une opération courante. Il existe plusieurs algorithmes différents qui peuvent être utilisés pour ce faire, chacun ayant sa propre complexité. Cet article explorera la complexité des algorithmes de déduplication de tableaux les plus courants en PHP.
Algorithme de déduplication de tableau
En PHP, il existe une variété d'algorithmes de déduplication de tableau parmi lesquels choisir, notamment :
Cas pratique
Ce qui suit est un cas pratique pour supprimer les doublons dans un tableau de chaînes :
<?php // 输入数组 $inputArray = ["a", "b", "c", "a", "d", "e", "c"]; // 使用 array_unique() 去重 $uniqueArray = array_unique($inputArray); // 输出去重后的数组 print_r($uniqueArray); ?>
Complexité
Algorithme | Complexité |
---|---|
array_unique() | O(n) |
array_flip() + array_keys() | O(n) |
foreach boucle | O(n^ 2) |
Comme indiqué dans le tableau ci-dessus, array_unique() et array_flip() + array_keys() complètent tous deux la déduplication du tableau dans une complexité temporelle O(n). Cela signifie que lorsque le tableau est plus grand, la surcharge de performances de ces deux algorithmes est également plus importante. D'un autre côté, la boucle foreach a une complexité de O(n^2), ce qui signifie que sa surcharge de performances augmente considérablement à mesure que la taille du tableau augmente.
Choisissez le meilleur algorithme
Le choix du meilleur algorithme de déduplication de baie dépend de la taille de la baie et des performances attendues. Pour les tableaux plus petits, une boucle foreach peut être un choix acceptable. Cependant, pour les tableaux plus grands, array_unique() ou array_flip() + array_keys() offriront de meilleures performances.
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!