Sobes.tech
Junior — Middle

Explain what is meant by the concept of collision in the context of computer systems and algorithms.

sobes.tech AI

Answer from AI

A collision is a situation where two different objects or values receive the same representation or key in a certain context.

In programming and computer systems, the term "collision" is most often used in the following cases:

  1. Hash tables: A collision occurs when two different keys hash to the same index in an array. Various methods are used to resolve collisions, such as chaining or open addressing.

  2. Cryptography: A collision in a hash function is when two different input messages produce the same hash. This is undesirable as it reduces security.

  3. Network protocols: A collision can mean simultaneous data transmission by two devices over the same channel, leading to conflicts and data loss.

Example of a collision in a hash table:

# Simple hash function for demonstration
def simple_hash(key, size):
    return len(key) % size

hash_table_size = 10
keys = ["cat", "dog", "bird"]

for key in keys:
    print(f"Key '{key}' hashes to index {simple_hash(key, hash_table_size)}")

Here, "cat" and "dog" can get the same index, which will be a collision.