Execution Efficiency of a Sequential, Multi-Threaded, and a Parallel Search for a Structured Data in a Symbol Table Implemented in a Binary Search Tree, an Array, and in a Linked List
摘要
A symbol table is an abstract mechanism used in many kinds of applications, including search applications, to store key-value pairs (information), where we can later search for and retrieve the value by specifying a key. For an effective symbol table implementation, it is important to choose an appropriate data structure. We have created a C# .NET application that allows to search for values, structured data of persons, according to given keys, e.g., first names and surnames, or phone numbers, in a symbol table (a phone book) that is implemented in a binary search tree, an array, and in a linked list sequentially, on multiple threads and in parallel using its instance methods, while the application measures the execution times of particular searches. By comparing these execution times, we were finding which of these data structures allows more efficient searching in a sequential search, multi-threaded, or in a parallel search.