数据结构复杂度与递归----C++初学之路

来源:互联网 发布:遗传算法的基本原理 编辑:程序博客网 时间:2024/06/04 19:36

 *以下是自己初学C++的笔记,为让自己坚持下去,遂坚持用博客记录,不保证权威*

昨天的偶然接触的递归,发觉数据结构是一门充满智慧的东西,如果要我形容,我觉得C++就是一辆车,数据结构则是一张地图,要去哪里我得先学会车,

去这里有几条路,哪条路更快,看地图。C++很重要,数据结构也同样重要,接下来的学习生活,我会C++与数据结构一起学习,另外多做做练习,给自己接下来

定个目标,设计模式,编译原理,操作系统。


好了,说说今天学了什么,今天周一,上了课之后回来还是没忍住游戏的诱惑,毕竟后天就是国庆,作为个死肥宅,国庆套必须要一套的。

花了大概三个小时,学习了关于复杂度与递归相关的知识,拿的书本是《数据结构(C++语言版本)》邓俊辉。

复杂度(个人的理解):分为时间复杂度与空间复杂度。

1.时间复杂度:当我们运行一个程序,会需要很多时间,概念上说,时间复杂度是运行一个算法所需要的时间,但是我们无法真正去测试这个时间,因为

大部分的程序中是依据变量来执行的,例如,我们求一个数组中 的整数之和,数组长度为n,那么时间长度肯定是根据n来决定的。所以我们需要一个笼统的概念

来概括这个运行时间,那么就是时间复杂度。

2.空间复杂度:即我们运行的算法,需要存储,也许我们会需要一个sum来储存和,需要分配一定的空间,空间大小也是影响算法的优良的指标。

关于这两个概念,有个博主写的很好,地址:引用博主booirror的文章


递归(个人理解):递归是一种算法设计模式,简而言之就是,我们会写出很多程序,而这些程序可能会重复执行相同的步骤,例如,数组求和,就是数组中前两个

加起来,然后加第三个,不断重复指针加,数组加的步骤,递归出现把这些重复的步骤高度概括,让整个程序运行的程序效率更快。

看到网上有几个很有趣的解释:代码如下(出自知乎):

#include <stdio.h>void Recursion(int depth){    printf("抱着");    if (!depth) printf("我的小鲤鱼");    else Recursion(--depth);    printf("的我");}int main(){    printf("吓得我抱起了\n");    Recursion(2);    putchar('\n');}/*作者:李冰链接:https://www.zhihu.com/question/20507130/answer/114197404来源:知乎*/
先说说递归基,我觉得概念我说不来,我个人理解觉得是特殊情况,举个例子,数组求和A[n],如果数组长度为1,那么是直接return A[0];的,这个当n=0时就是递归基。

线性递归:算法会朝着更深一层来进行自我调用,并且每一次递归实例对自身的调用最多一次。这种模式的递归叫做线性递归。直接举个书本的例子:

int sum(int A[],int n){    if(1>n) return 0;//这里指出递归基    else return sum(A,n-1)+A[n-1];//调用本身,递归}
减而治之:递归每深入一层,求解的规模就减小一个常数,直到最后成为一个简单的问题。就是上面代码要形容的。

分而治之:将问题分解成规模更小的子问题,再通过递归机制来分别求解,直到最后成为一个简单的问题。(二分递归)下面举个二分的例子:

int sum(int A[],int lo,int hi){     if(lo==hi) return A[lo];//仍然是递归基    else{               int mi=(lo+hi)>>1;//将一个数组的求和,变成两个数组的求和,并且递归求,效率提高               return sum(A,lo,mi)+sum(A,mi,hi);          ]}


*以上是今日自己的学习记录,明日目标:C++的处理类型,数据结构的向量*



原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 梦见不顺心的事怎么办 振动声桥洗澡时怎么办 同校生2高潮了怎么办 经期血发黑量少怎么办 电脑键盘右边数字键不能用怎么办 御宅伴侣特别卡怎么办 电脑网络出现三角叹号怎么办 同校生2卡顿怎么办 电脑卡了没反应怎么办 促排卵泡多要怎么办 把朋友搞摔倒意外死亡怎么办 猫见到狗受惊了怎么办 头被桌子撞肿了怎么办 鱼缸里的鱼缺氧怎么办 上火眼皮打拉下来怎么办 小孩头敲了个包怎么办 四个月不吃奶怎么办啊 4个月宝宝不吃奶粉怎么办 3个月婴儿不喝奶怎么办 地图舌加裂纹舌怎么办 3个月宝宝厌食怎么办 宝宝不吃奶吃手怎么办 三个月的宝宝光吃手不吃奶怎么办 九个月宝宝积热怎么办 前门牙露神经了怎么办 7岁宝宝吐舌头怎么办 连续液精几个月了怎么办 接吻时对方伸舌头我要怎么办 亲嘴不想让对方伸舌头怎么办 喝醉酒想吐吐不出来怎么办 凉了胃怎么办喝什么药 生宝宝后屁股扁了怎么办 屁股又宽又扁怎么办 烫伤一年多色差没有恢复怎么办 上古卷轴5不能动怎么办 上古卷轴ol卡死怎么办 小妹妹这么骚长大了怎么办 同事借钱忘了还怎么办 怀了二胎想离婚怎么办 如果闺蜜疏远了怎么办 考上博士但是硕士要延期怎么办