1685. 珅泽教育CSP-J第一轮模拟考第六套 第 34 题
珅泽教育CSP-J第一轮模拟考第六套 第 34 题
二、阅读程序·第三题(选择题)
struct flat_map {
struct {
int key;
int value;
} bucket[65536];
int size = 0;
struct result {
int index;
bool hit;
};
result find(int begin, int end, int key) {
if (begin == end)
return {begin, false};
else {
int mid = begin + (end - begin) / 2;
if (key < bucket[mid].key)
return find(begin, mid, key);
else if (bucket[mid].key < key)
return find(mid+1, end, key);
else
return {mid, true};
}
}
int get(int key) {
result p = find(0, size, key);
if (p.hit)
return bucket[p.index].value;
else
return 0;
}
void put(int key, int value) {
result p = find(0, size, key);
for (int i = size; i > p.index; --i)
bucket[i] = bucket[i - 1];
size++;
bucket[p.index].key = key;
bucket[p.index].value = value;
}
};
以下说法错误的是( )。
{{ select(1) }}
flat_map的优点是插入数据时移动数据少。flat_map的优点是数据紧凑排列,空间使用效率高。flat_map的优点是查找数据的效率高。flat_map的优点是代码紧凑,实现简短。