哈希查找串行算法c++代码
以下是C++中的哈希查找串行算法示例代码:
#include <iostream>
#include <vector>
class HashTable {
private:
int tableSize;
std::vector<std::pair<int, int>>* hashTable;
public:
HashTable(int size) {
tableSize = size;
hashTable = new std::vector<std::pair<int, int>>(tableSize);
}
void insert(int key, int value) {
int hash = (key % tableSize);
while ((*hashTable)[hash].first != 0 && (*hashTable)[hash].first != key) {
hash = (hash + 1) % tableSize;
}
(*hashTable)[hash] = std::make_pair(key, value);
}
int search(int key) {
int hash = (key % tableSize);
while ((*hashTable)[hash].first != 0) {
if ((*hashTable)[hash].first == key) {
return (*hashTable)[hash].second;
}
hash = (hash + 1) % tableSize;
}
return -1; // Key not found
}
~HashTable() {
delete hashTable;
}
};
int main() {
HashTable hashTable(10);
hashTable.insert(1, 10);
hashTable.insert(2, 20);
hashTable.insert(3, 30);
std::cout << hashTable.search(2) << std::endl; // Output: 20
std::cout << hashTable.search(5) << std::endl; // Output: -1 (Key not found)
return 0;
}
在这个示例代码中,我们创建了一个HashTable类来实现哈希查找算法。该类使用一个std::vector<std::pair<int, int>>*类型的数组作为哈希表,其中每个元素是一个键值对。insert函数用于将键值对插入到哈希表中,search函数用于在哈希表中查找给定的键,并返回对应的值。
在main函数中,我们创建了一个大小为10的哈希表,并插入了一些键值对。然后,我们使用search函数来查找特定的键,并打印结果。
请注意,这只是一个简单的示例代码,实际的哈希查找算法可能会更复杂,并且通常需要处理哈希冲突。这里的代码只是一个基本的串行实现,可能不适用于大规模数据集或高并发环境
原文地址: http://www.cveoy.top/t/topic/id2R 著作权归作者所有。请勿转载和采集!