自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。2^(n-1)

解释下:2^(n-1)这里我表示的是2的(n-1次方),不是 2异或(n-1),虽然也不会这么用。这个公式c++可以写为 1<<(--n)位运算不仅快速而且美观例题一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。我们不难可以得出当有n级台阶时,有2^(n-1)种情况,这时直接int jump...

2018-09-28 22:27:39 485

原创 进程的内存结构

一个正在运行的进程在内存空间中申请的代码区、初始化数据区、未初始化数据区、上下文信息以及挂载的信号等等.(1)代码区.加载的是可执行文件的代码段,其加载到内存中的位置由加载器完成.(2)全局初始化数据区/静态数据区.加载的是可执行文件数据段,位置可位于代码段后也可以分开.程序在运行之初就为该数据段申请了空间,在程序退出时才释放,因此,存储于数据段的数据的生存周期为整个程序运行过程.(3)...

2018-09-28 16:37:03 2109

原创 堆和栈概念以及区别

栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);栈底...

2018-09-28 16:21:08 1595

原创 单向链表和双向链表的优缺点及使用场景

单向链表:只有一个指向下一个节点的指针。优点:单向链表增加删除节点简单。遍历时候不会死循环;缺点:只能从头到尾遍历。只能找到后继,无法找到前驱,也就是只能前进。适用于节点的增加删除。双向链表:有两个指针,一个指向前一个节点,一个后一个节点。优点:可以找到前驱和后继,可进可退;缺点:增加删除节点复杂,需要多分配一个指针存储空间。适用于需要双向查找节点值的情况。...

2018-09-28 16:16:39 34834 1

转载 Ping的详细过程以及作用

转: http://blog.chinaunix.net/uid-26758209-id-3146224.html  Ping命令的主要作用的是检查网络的连通情况和检测网络的速度。1、Pc1在应用层发起个目标IP位IP2的Ping请求。2、传输层接到上层请求的数据,将数据分段并加上UDP报头。下传到Internet层。3、 网际层接收来处上层的数据后,根据ICMP协议进行封装,...

2018-09-28 15:54:17 503

原创 int *p[10]和int (*p)[10]

int *p[10] 指的指针数组 他是个数组 有10个元素 每个元素是int*类型也就是指向int的指针 也就是存放10个int指针变量int (*p)[10] 指的数组指针他是指针 指向一个含有10个元素的数组 主要用在函数的参数上面,主要用于约束参数数组的长度。...

2018-09-28 15:48:30 2606

原创 宏定义参数加括号

加括号是为了处理表达式参数(即宏的参数可能是个算法表达式)时不出错,因为宏替换就是文本替换。比如以下情况:#define COM(A,B) (A)*(B)那么COM(6+5,3)它会换成这样: (6+5)*(3)显然这是和COM宏的意图一致的,但是如是去掉了定义中括号,即写成这样:#define COM(A,B) A*B那么COM(6+5,3)它就会换成这样: 6+5*3这样显然就...

2018-09-28 15:39:08 4619

原创 动态输入二维数组

使用vector#include<iostream>#include<vector>using namespace std;int main(){ vector<int> a; vector<vector<int> > data; int n; while(cin>>n){ ...

2018-09-28 00:23:05 1682

原创 C++用其他符号作为输入间隔

#include<iostream>using namespace std;int main(){    int a[5];    for(int i =0;i<5;++i){        cin>>a[i];        getchar();    }    for(int i =0;i<5;++i){        cout<&l...

2018-09-28 00:18:28 2269

原创 需要直接输入一串数,回车输入结束,把数动态放进数组里

采用vector动态存储#include<iostream>#include<vector>using namespace std;int main(){ vector<int> data; int n,cnt = 0; while(cin>>n){ data.push_back(n); ...

2018-09-27 15:48:36 1926

原创 char 与 unsign char的转换

char为字符类型。unsigned char为无符号字符类型。二者均是占一个字节,可以直接通过强制转换的方式,把char类型的值转为unsigned char。当定义变量:unsigned char a;char b;转换的形式为:a = (unsigned char)b;当char类型的值为正时,转换后的值为原值。当char类型为负时,原始值的符号位会转为数据位,即结果值为原始值补...

2018-09-27 10:38:34 12449

原创 C++的字符串长度

1.对于#include<string>string a = "123";cout<<a.length()输出:3对于上面的a,如果cout<<sizeof(a)输出:8string占8个字节。2.对于#include<cstring>char a[10] = "123";char* b= "123

2018-09-27 10:37:08 2011

原创 字符串的前缀、后缀、子串、子序列

假设s的的长度为n1)串s的前缀(prefix)是从s的尾部删除0个或多个符号得到的串。一共有n+1个前缀。2)串s的后缀(suffix)是从s的开始处删除0个或多个符号后得到的串。一共有n+1个后缀。3)串s的子串(substring)是删除s的某个前缀和某个后缀之后得到的串。一共有C(0,n)+C(1,n)+C(2,n)或者((n*(n+1))/2 )+ 1个子串4)串s的真(...

2018-09-25 15:51:28 4202 1

原创 两种方法建堆时间复杂度

Floyd建堆算法(自下而上下滤)建立规模为n的完全二叉堆的时间复杂度为:O(n)一般的暴力建堆算法(自上而下下滤)时间复杂度为:O(nlogn)

2018-09-24 14:46:35 2911 1

原创 BBST家族的红黑树R-Btree

1.既然已经有了AVL树为什么还需要引入R-Btree,也就是说引入有什么意义?就树形的拓扑结构而语言,大部分的BBST都不能做到相邻版本之间的结构差异不超过O(1),包括AVL树,AVL的插入可以做到O(1),而删除不能做到这点,从AVL删除一个节点可能导致O(log n)次旋转,从而导致树形结构剧烈变化。然而R-Btree就可以做到这一点;R-Btree任何一次动态操作引发的结构变...

2018-09-23 19:53:16 408

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除