卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章16705本站已运行3320

一个包含n个元素且具有O(1)操作的数据结构?

一个包含n个元素且具有O(1)操作的数据结构?

在这里,我们将看到一个包含 n 个元素的数据结构和 O(1) 操作。因此,操作将花费恒定的时间来执行。

数据结构将保存 n 个元素(从 0 到 n-1)。数据可以按任何顺序。插入、删除和搜索将花费 O(1) 时间。

为了解决这个问题,我们将使用一个布尔数组。这将表明该项目是否存在于位置 i。如果该项存在,则为 1,否则为 0。

算法

初始化(n)

begin
   fill all elements of the Boolean array as 0
end

插入(i)

begin
   set element at index i as 1(true)
end

删除(i)

begin
set element at index i as 0(false)
end

搜索(i)

begin
   return item at position i
end

示例

//initialization
void init(int n) {
   bool dataStructure[n];
   for (int i = 0; i<n; i++)
      dataStructure[i] = 0;
}
//Insertion
void insert(unsigned i) {
   dataStructure[i] = 1;
}
//Deletion
void delete(unsigned i) {
   dataStructure[i] = 0;
}
//Search
bool search(unsigned i) {
   return dataStructure[i];
}

卓越飞翔博客
上一篇: 握手次数,每个人只握一次手
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏