Articles of algorithme

Arbres binarys vs listes liées vs tables de hachage

Je construis une table de symboles pour un projet sur lequel je travaille. Je me demandais quelles étaient les opinions des gens sur les avantages et les inconvénients des différentes méthodes disponibles pour stocker et créer une table de symboles. J’ai fait pas mal de recherches et les plus couramment recommandées sont les arbres binarys, […]

Expliquer les arbres Merkle à utiliser dans la cohérence éventuelle

Merkle Trees est utilisé comme mécanisme anti-entropie dans plusieurs magasins de clés / valeurs répliqués dissortingbués: Dynamo Riak Cassandra Nul doute qu’un mécanisme anti-entropie est une bonne chose – des défaillances transitoires se produisent simplement dans la production. Je ne suis pas sûr de comprendre pourquoi les arbres Merkle sont l’approche populaire. L’envoi d’une arborescence […]

Quel est le problème avec cet algorithme de mélange et comment puis-je le savoir?

Juste comme arrière-plan, je suis au courant du mélange parfait de Fisher-Yates . C’est un super mélange avec sa complexité O (n) et son uniformité garantie et je serais fou de ne pas l’utiliser … dans un environnement qui permet des mises à jour sur place des tableaux (donc dans la plupart, sinon tous, environnements […]

Pourquoi l’algorithme de Dijkstra utilise-t-il la clé?

L’algorithme de Dijkstra m’a été enseigné comme suit while pqueue is not empty: distance, node = pqueue.delete_min() if node has been visited: continue else: mark node as visited if node == target: break for each neighbor of node: pqueue.insert(distance + distance_to_neighbor, neighbor) Mais j’ai fait quelques lectures concernant l’algorithme, et beaucoup de versions que je […]

Quelle est la probabilité que le tableau rest le même?

Cette question a été posée dans l’interview de Microsoft. Très curieux de savoir pourquoi ces personnes posent des questions si étranges sur la probabilité? Étant donné un rand (N), un générateur aléatoire qui génère un nombre aléatoire de 0 à N-1. int A[N]; // An array of size N for(i = 0; i < N; […]

Quelle est la différence entre les structures de données sortinge et radix sortinge?

Les structures de données sortinge et radix sortinge sont-elles identiques? Si elles sont identiques, alors quelle est la signification de radix sortinge (AKA Pasortingcia sortinge)?

Interview: Fusion de deux listes liées par un sorting

C’est une question de programmation posée lors d’un test écrit pour une interview. “Vous avez deux listes à liens uniques qui sont déjà sortingées, vous devez les fusionner et retourner la tête de la nouvelle liste sans créer de nouveaux nœuds supplémentaires. La liste renvoyée devrait également être sortingée” La signature de la méthode est […]

Complexité temporelle de l’algorithme Sieve of Eratosthenes

De Wikipedia: La complexité de l’algorithme est O(n(logn)(loglogn)) opérations de bits. Comment arrivez-vous à ça? Que la complexité inclue le terme loglogn m’indique qu’il y a un sqrt(n) quelque part. Supposons que je lance le tamis sur les 100 premiers nombres ( n = 100 ), en supposant que le marquage des nombres comme composite […]

Pourquoi les nombres de Fibonacci sont-ils significatifs en informatique?

Les nombres de Fibonacci sont devenus une introduction populaire à la récursivité pour les étudiants en informatique et il existe un argument fort en faveur de leur persistance dans la nature. Pour ces raisons, beaucoup d’entre nous les connaissent. Ils existent aussi dans l’informatique ailleurs aussi; dans des structures de données et des algorithmes étonnamment […]

Obscurcir un identifiant

Je cherche un moyen de chiffrer / masquer un identifiant entier dans un autre entier. Plus précisément, j’ai besoin d’une fonction int F(int x) , de sorte que x F (x) correspond à une correspondance univoque (si x! = y, F (x)! = F (y)) compte tenu de F (x), il est facile de trouver […]