数据结构复习1:

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38446366/article/details/89394805

最近开始回归理论知识,好好复习之前学的内容,总结成文章,之后不定期的复习。加油啦!

##1。数据结构的基础知识:

###数据结构的基本概念:

研究数据元素之间的关系(数组/链表/树/图)。

        数据:程序的操作对象,用于描述客观事物。

        数据元素:组成数据的基本单位。

        数据对象:性质相同的数据元素的集合。

举例:int a ,int b..... a b表示数据 ;int array[10],数据对象; array[0] array[1] ...是数据元素(一个一个节点),

###数据结构的逻辑关系:

四种关系:

       集合:数据元素之间没有关系

       线性结构:数据元素之间是一对一的关系 如链表,队列

       树形结构:数据元素是一对多的关系 如树

       图状结构:数据元素之间是多对多的关系 如图

扫描二维码关注公众号,回复: 6469855 查看本文章

###数据的物理结构:

物理结构也称存储结构,是数据的逻辑结构在计算机存储器内的表示(或映像),依赖与计算机。

       存储结构可分为四大类:顺序,链表, 索引,散列(md5,sha1,sha256,sha512,SM系列),

###数据的运算:

插入,删除,修改,查找,排序。

##2.算法:

###算法的概念:

算法重要的是思想,算法是问题求解的步骤。

###算法与数据结构区别:

数据结构只是静态的描述了数据元素的关系。程序 = 算法 + 数据结构

###算法的特性:

输入,输出,有穷性,确定性,可行性。

###算法效率的度量:

事前分析结算,依据统计的方法对算法效率进行估算。

影响算法效率的主要因素:

       算法采用的策略和方法,问题的输入规模,编译器所产生的代码,计算机的执行速度。

根据程序执行步骤的多少,判断算法的复杂度。-------> 大O表示法

最坏的情况下的时间复杂度和空间复杂度。

####时间复杂度

作用:时间复杂度是度量算法执行时间的长短;(时间复杂度简单的理解就是执行语句的条数。如果有循环和递归,则忽略简单语句,直接算循环和递归的语句执行次数)

时间复杂度用大O渐进表示法表示

时间复杂度的计算:

1,找出执行语句的条数。 如果有循环和递归,则忽略简单语句,直接算循环和递归的语句执行次数;如果算法中有包含嵌套的循环,则执行次数通常是将两个循环次数相乘 ,如果算法中包含并列的循环,则将并且的相加;

2, 将语句执行次数的数量级放入大Ο记号中;

    用常数1取代运行时间中的加法常数;
    在修改后的运行次数函数中,只保留最高阶项;
    如果最高项系数存在且不是1,则去除与这个项相乘的常数;

####空间复杂度

作用:空间复杂度是度量算法所需存储空间的大小(算法的空间复杂度并不是计算实际占用的空间,而是计算整个算法的辅助空间单元的个数)记做S(n)=O(f(n))。
简单理解就是算法执行时创建的变量(包括临时变量)个数

①忽略常数,用O(1)表示
②递归算法的空间复杂度=递归深度N*每次递归所要的辅助空间
③对于单线程来说,递归有运行时堆栈,求的是递归最深的那一次压栈所耗费的空间的个数,因为递归最深的那一次所耗费的空间足以容纳它所有递归过程。递归是要返回上一层的,所以它所需要的空间不是一直累加起来的 .

 

猜你喜欢

转载自blog.csdn.net/qq_38446366/article/details/89394805
今日推荐