摘要: Bitmap 问题给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中?方案1:用位图/Bitmap的方法,申请512M的内存,一个bit位代表一个unsigned int值。读入40亿个数,设置相应的bit位,读入要查询的数,查看相 阅读全文
posted @ 2020-03-05 21:48 Rogn 阅读(817) 评论(0) 推荐(0) 编辑
摘要: 什么是索引 数据库索引好比是一本书前面的目录,能加快数据库的查询速度。例如这样一个查询:select * from table1 where id=10000。如果没有索引,必须遍历整个表,直到ID等于10000的这一行被找到为止;有了索引之后(必须是在ID这一列上建立的索引),即可在索引中查找。由 阅读全文
posted @ 2020-03-05 21:47 Rogn 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 一个较好的方法:先拿出10000个建立小根堆,对于剩下的元素,如果大于堆顶元素的值,删除堆顶元素,再进行插入操作,否则直接跳过,这样知道所有元素遍历完,堆中的10000个就是最大的10000个。时间复杂度: m + (n-1)logm = O(nlogm) 优化的方法:可以把所有10亿个数据分组存放 阅读全文
posted @ 2020-03-05 20:19 Rogn 阅读(2372) 评论(0) 推荐(0) 编辑
摘要: 方法一: 全局变量的构造函数,会在main之前执行。 #include <iostream> using namespace std; class app { public: //构造函数 app() { cout<<"First"<<endl; } }; app a; // 申明一个全局变量 in 阅读全文
posted @ 2020-03-05 17:03 Rogn 阅读(3187) 评论(0) 推荐(1) 编辑
摘要: #include <iostream> #include <string> using namespace std; // 1 class emptyClass0{ }; // 1 class emptyClass1{ public: emptyClass1(){} ~emptyClass1(){} 阅读全文
posted @ 2020-03-05 16:07 Rogn 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 对函数使用sizeof,在编译阶段会被函数返回值的类型取代。如:首先要明确sizeof不是函数,也不是一元运算符,它是个类似宏定义的特殊关键字,sizeof();括号内在编译过程中是不被编译的,而是被类型替代。 如int a=8;sizeof(a++);在编译过程中,a的值不会变,只是被替换成类型s 阅读全文
posted @ 2020-03-05 15:50 Rogn 阅读(405) 评论(0) 推荐(0) 编辑
摘要: 一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值。 union变量的大小为其中size最大类型的大小。 #include<stdio.h> union U { int a; char b; }; int main() { 阅读全文
posted @ 2020-03-05 14:38 Rogn 阅读(705) 评论(0) 推荐(0) 编辑
摘要: 以下的内容C++中也一样。 结构体中的成员可以是不同的数据类型,成员按照定义时的顺序依次存储在连续的内存空间。和数组不一样的是,结构体的大小不是所有成员大小简单的相加,需要考虑到系统在存储结构体变量时的地址对齐问题。 一、为何要内存对齐 因为处理器读写数据,并不是以字节为单位,而是以块(2,4,8, 阅读全文
posted @ 2020-03-05 13:56 Rogn 阅读(875) 评论(0) 推荐(0) 编辑
摘要: 这是经典的同步互斥问题, 遵循原则: 1、条件变量需要锁的保护;2、锁需要条件变量成立后,后重新上锁; 参考代码: //notify_one()(随机唤醒一个等待的线程) //notify_all()(唤醒所有等待的线程) //Create By@herongwei 2019/09/10 #incl 阅读全文
posted @ 2020-03-05 12:06 Rogn 阅读(3082) 评论(0) 推荐(0) 编辑
摘要: 一、认识并发和并行 先将两个概念, 并发与并行 并发:同一时间段内可以交替处理多个操作: 图中整个安检系统是一个并发设计的结构。两个安检队列队首的人竞争这一个安检窗口,两个队列可能约定交替着进行安检,也可能是大家同时竞争安检窗口(通信)。后一种方式可能引起冲突:因为无法同时进行两个安检操作。在逻辑上 阅读全文
posted @ 2020-03-05 11:40 Rogn 阅读(694) 评论(0) 推荐(0) 编辑