基础知识笔记
基础知识笔记
清蒸雪糕
一个小人物
展开
-
基础程序算法笔记
二分搜索(Binary Search) 时间复杂度 : 假使总共有n个元素,那么二分后每次查找的区间大小就是n,n/2,n/4,…,n/2^k(接下来操作元素的剩余个数),其中k就是循环的次数。 最坏的情况是K次二分之后,每个区间的大小为1,找到想要的元素 令n/2^k=1, 可得k=log2n,(是以2为底,n的对数),所以时间复杂度可以表示O()=O(logn). int Bina...原创 2020-02-15 15:26:23 · 172 阅读 · 0 评论 -
基础知识整理5
sizeof(类),如何计算类的大小? 1.类的大小 类的sizeof()大小一般是类中的所有成员的sizeof()大小之和。确切的说,用sizeof运算符对一个类型名操作,得到的是具有该类型实体的大小。注意:类只是一个类型定义,它本身是没有大小可言的。 对象大小 = vptr(可能不止一个,这个很难确定,类中定义了一个virtual函数,仍然为占用4个字节)+ 所有非静态数据成员大小 + ...转载 2019-02-13 23:15:20 · 87 阅读 · 0 评论 -
基础知识整理4
如何定义一个只能在堆(栈)上创建对象的类 1.只能在栈上创建对象的类 只有使用new运算符,对象才会建立在堆上,因此,只要禁用new运算符就可以实现类对象只能建立在栈上 class AA { public: AA() { cout<<"AA()"<<endl; } ~AA() ...原创 2019-02-12 23:45:30 · 86 阅读 · 0 评论 -
基础知识整理3
数据结构 1.链表 (1)链表建立、插入、删除 ·建立 Node *L; L = new Node; L = NULL;//不带头节点的初始化 L->=NULL;//带头节点的初始化 ·头尾插入元素 p->next = L; L=p;//头插法 Node *tail = new Node;//尾插法 Node *cur = L; while(cur->next!...原创 2019-02-11 23:39:38 · 95 阅读 · 0 评论 -
基础知识整理2
网络 TCP和UDP tcp是一种面向连接的、可靠的、基于字节流的传输层通信协议。udp(用户数据报协议)传输层协议,提供面向操作的简单不可靠的非连接传输层服务,面向报文。 区别: a.tcp是基于连接的,可靠性高;udp是基于无连接的,可靠性较低; b.由于tcp是连接的通信,需要有三次握手、重新确认等连接过程,会有延时,实时性差;同时过程复杂,也使其易于被攻击;而udp无连接,无建立...原创 2019-02-10 23:30:33 · 91 阅读 · 0 评论 -
基础知识点整理(杂乱)
死锁及其预防和处理方法 死锁的规范定义:如果一个进程在等待只能由该进程停止才能引发的事件,那么该进程就是死锁的。 (1)产生死锁的原因 ·因为系统资源不足 ·进程运行推进的顺序不合适 ·资源分配不当等。 (2)产生死锁的四个必要条件 1.互斥条件:每个资源要么已经分配给了一个进程,要么就是可用的。 2.占有和等待条件:已经得到了某个资源的进程可以再请求新的资源。 3.不可抢占条件...原创 2019-02-09 18:01:43 · 97 阅读 · 0 评论