位向量(bit vector)

位向量(bit vector)是一个仅包含0和1的数组。长度为m的位向量所占空间要比包含m个指针的数组少得多。说明如何用一个位向量来表示一个包含不同元素(无卫星数据)的动态集合。字典操作运行时间应为O(1)
(算法导论第十一章11.1-2)

//里面的用循环转换了数据 这个在严格要求时间的复杂度下可以移动外部操作
int bit_search(char *array,int k)
{if(array[k]){int result = 1;while (k-->0){result *= 2;}return result;}return -1;
}
void bit_insert(char *array,int k)
{array[k] = 0x1;
}
void bit_delete(char*array,int k)
{array[k] = 0x0;
}

测试数据

    int size = 10;char* array = new char [size];bit_insert(array,0);bit_insert(array,2);bit_insert(array,4);cout<<bit_search(array,4)<<endl;bit_delete(array,4);cout<<bit_search(array,4)<<endl;delete[] array;

位向量(bit vector)(算法导论第十一章11.1-2)相关推荐

  1. 假设一动态集合S用一个长度为m的直接寻址表T来表示。请给出一个查找S中最大元素的过程。(算法导论第十一章11.1-1)

    假设一动态集合S用一个长度为m的直接寻址表T来表示.请给出一个查找S中最大元素的过程.你所给的过程在最坏情况下的运行时间是多少. (算法导论第十一章11.1-1) #include "Key ...

  2. 算法导论第三版第十一章11.1-4

    算法导论第三版第十一章11.1-4 我们希望在一个非常大的数组上,通过利用直接寻址的方式来实现一个字典.开始时,该数组中可能包含一些无用信息,但要堆整个数组进行初始化时不太实际的,因为该数组的规模太大 ...

  3. 算法导论第2章(3) 二分查找 binary search

    二分查找(分治法). 二分查找也是一种分治法的实现,每一次查找将数据分为两个部分,问题规模都减小一半.这样查找的时间复杂度为logN.因为其实查找过程建立了一棵有N个节点的二叉树,查找次数是这棵树的高 ...

  4. 【Java数据结构与算法】第十一章 顺序存储二叉树、线索二叉树和堆

    第十一章 顺序存储二叉树.线索化二叉树.大顶堆.小顶堆和堆排序 文章目录 第十一章 顺序存储二叉树.线索化二叉树.大顶堆.小顶堆和堆排序 一.顺序存储二叉树 1.介绍 2.代码实现 二.线索二叉树 1 ...

  5. 算法导论 第7章 快速排序 —— 练习还没做,记得补锅

    今天来学习第七章--快速排序. 作为占据一章的排序,快速排序可谓是重量级选手. 实际排序中最好的选择,因为 (1) 其平均性能非常好,期望实践复杂度为 O(n lgn); (2) 可进行原址排序; ( ...

  6. 重读《算法导论》第一章

    重读<算法导论> --------算法是程序的灵魂! 驱动力:本人从事开发10年有余,目前正在参与研发自动化编程.在代码解析.自动生成.以及源码分析过程中总会遇到一些算法的问题. 所以想着 ...

  7. 算法导论第十三章 红黑树

    写在前面:这一章真的把我害惨了,之前至少尝试看过3遍,每次看之前都下定决定一定要把它拿下,可是由于内容较多,深度够深,以致于每次要不是中途有什么事放弃了就跳过了,要不是花时间太多仍然不能理解而放弃.这 ...

  8. 算法导论第16章练习题 16.1-4

    16.1-4 假设有一组活动,我们需要将它们安排到一些教室,任意活动都可以在任意教室进行.我们希望使用最少的教室来完成活动.设计一个高效的贪心算法,求每个活动应该在哪个教室来进行. (这个问题也被称为 ...

  9. 算法导论 第20章 斐波那契堆

    斐波那契堆的定义 参看19章 二项堆我们可以看到对于可合并堆操作,二项堆均有O(lgn)的时间,对于本章将要讨论的斐波那契堆也支持这些操作,而且它有着更好的渐进时间界,对于不涉及元素删除的操作,它有着 ...

最新文章

  1. java中遍历Map对象的四种方式
  2. AJAX Control Toolkit 30930
  3. 云上人第七代产品简单的代码
  4. 帝国cms用php输出点击数量,帝国CMS信息增加随机点击数的修改方法(最新教程)
  5. 1. Linux内核的配置与裁减:
  6. nullnullGet previous business day
  7. mysql 开启守护进程_[求助]Linux上MySQL Server 5.6 安装后无法启动守护进程
  8. 关于AppCompatDelegate的使用
  9. 第十一章 “她”值多少钱
  10. jquery的ajax,请求JSON数据。
  11. js 正则表达式实现文本验证
  12. jQuery.Event的一些用法
  13. SpringBoot集成Spring Security(3)——异常处理
  14. linux查看设备在哪个cpu上,如何在linux中查看cpu信息、机器硬件型号
  15. 研究人员发现绝大部分酷派(Coolpad)手机暗藏后门(转)
  16. frp源码剖析-frp中的log模块
  17. u盘启动怎么修复计算机,电脑店u盘启动winpe如何修复系统引导
  18. 自己搭建的网站显示403
  19. java英文翻译_Java实现英文文本单词翻译器功能的简单实例
  20. KK集团招股书失效,首次冲刺港交所上市失利,尚未实现盈利

热门文章

  1. 利用Excel VBA批量计算气象数据多个台站多年来春季和冬季降水量和平均气温
  2. Visual Studio与C#编程十个实用技巧
  3. C语言试题二十五之编写一个函数float function(double h),函数的功能使对变量h中的值保留2位小数,并对第三位进行四舍五入(规定h中的值位正数)。
  4. Android Studio导入别人的module提示错误Plugin with id ‘com.jfrog.bintray‘ not found.
  5. C和指针之动态内存分配常见问题和总结
  6. Android之解决java.lang.NoSuchMethodError:android.os.powerManager.isInteractive问题
  7. LeetCode之Hamming Distance
  8. 这可能是这次疫情最搞笑的事情,可看着看着却鼻酸了
  9. 世纪渣男何书桓! | 今日最佳
  10. 鸿蒙手机启动器apk下载,澪Pro启动器本体下载最新版