Computer-science_A-level_Cie
-
computers-and-components6 主题
-
logic-gates-and-logic-circuits2 主题
-
central-processing-unit-cpu-architecture6 主题
-
assembly-language-4 主题
-
bit-manipulation1 主题
-
operating-systems3 主题
-
language-translators2 主题
-
data-security3 主题
-
data-integrity1 主题
-
ethics-and-ownership3 主题
-
database-concepts3 主题
-
database-management-systems-dbms-1 主题
-
data-definition-language-ddl-and-data-manipulation-language-dml1 主题
-
computational-thinking-skills1 主题
-
algorithms14 主题
-
data-types-and-records2 主题
-
arrays2 主题
-
files1 主题
-
introduction-to-abstract-data-types-adt1 主题
-
programming-basics1 主题
-
constructs2 主题
-
structured-programming1 主题
-
program-development-life-cycle2 主题
-
program-design-2 主题
-
program-testing-and-maintenance3 主题
-
user-defined-data-types1 主题
-
file-organisation-and-access-3 主题
-
floating-point-numbers-representation-and-manipulation3 主题
-
protocols2 主题
-
circuit-switching-packet-switching1 主题
-
processors-parallel-processing-and-virtual-machines5 主题
-
boolean-algebra-and-logic-circuits4 主题
-
purposes-of-an-operating-system-os3 主题
-
translation-software3 主题
-
encryption-encryption-protocols-and-digital-certificates3 主题
-
artificial-intelligence-ai4 主题
-
recursion1 主题
-
programming-paradigms4 主题
-
object-oriented-programming7 主题
-
file-processing-and-exception-handling2 主题
-
data-representation5 主题
-
multimedia3 主题
-
compression2 主题
-
networks-and-the-internet11 主题
hashing
Hashing algorithms
What is a hashing algorithm?
-
A hashing algorithm is used to calculate the storage location (address) of a record in a random (direct access) file
-
It allows for fast access to data without searching sequentially through a file
Why use hashing?
-
Provides direct access to records using a key (e.g. ID, account number)
-
Useful when dealing with large files that need fast search, read, or write operations
-
Used in random files and sometimes in indexed sequential files
How hashing works?
-
A hashing algorithm takes a key (e.g. StudentID) and uses a mathematical function to calculate a file address
Address = HashFunction(Key)
-
If two keys produce the same address, a collision occurs
-
This must be resolved (e.g. via linear probing or overflow areas)
Writing a record to a file:
Address ← HashFunction(Key)
WRITE file[Address], Record
Reading a record from a file:
Address ← HashFunction(Key)
READ file[Address], Record
-
If the expected record is not found, collision handling must be applied to find the correct record
Types of hashing algorithms
|
Method |
Description |
|---|---|
|
Modulo Division |
Most common method: |
|
Folding Method |
Breaks the key into parts and adds them together |
|
Mid-Square Method |
Square the key and use the middle digits as the address |
|
Multiplicative Hashing |
Multiplies the key by a constant and uses fractional part × tablesize |
Collision handling strategies
|
Strategy |
Description |
|---|---|
|
Linear probing |
Try the next available slot in sequence |
|
Overflow area |
Store conflicting records in a separate file/area |
|
Chaining |
Store all records with the same address in a list |
Responses