数据结构-预备知识

数据结构与算法学习一

推荐书籍 数据结构:严蔚敏版《数据结构与算法》《大话数据结构》
算法:基础级:刘汝佳 算法竞赛入门级
进阶级:刘汝佳黑书 算法导论;注:很难,非算法行业慎入 刷题网站:(1)力扣(2)POJ(北京大学)或者HDU(杭州电子科技大学)

为什么要学习数据结构和算法

·1.BAT一线互连网公司面试必问技术
数据结构与算法是所有计算机类的基础。大企看中的是潜力。
·2.如果你不想做一辈子的CRUD(增删改查)工程师:业务工程师,CURD工程师
统计功能 :排序+循环。
·3.架构师必备: 写出框架级的代码 :API,写出开源级代码
·4.提升自己的能力 ,不被行业淘汰

基础知识

算法的五个特性:有穷性、确定性、可行性、有输入、有输出
设计原则:正确性、可读性、健壮性
高效率与低内存: 内存+CPU
内存占用最小,CPU占用最小 ,运算速度最快
评价算法的两个最重要的指标:.
时间复杂度 :运行一个程序所花费的时间 O()
空间复杂度:运行程序所需要的内存OOM

时间复杂度

1.时间复杂度的表示方法:大O表示,O(n),O(nlogn),O(1),O(n), O(n^2), O(logn), O(n!);

计算时间复杂度往往是计算比较大的而且是不确定的数,如果已经确定就不用计算,也就是常量
计算时只算最高阶!
几种常见的时间复杂度:
常数:O(1) 1表示常数,所有确定的数都用O(1)
对数:O(logn)
线性:O(n)
线性对数:O(nlogn)
平方:O(n^2)
N次方:O(n^n)
效率对比:O(1) > O(logn) > O(n) > O(nlogn) > O(n^2)
2.时间复杂度如何来分析
(1)找for while 递归。而且要找循环量最大的那一段
(2)找有网络请求的地方(RPC 远程调用,分布式,数据库请求)

空间复杂度

1.空间复杂度:找花了内存的地方,数据
2.如何找:开了空间的地方,比如数组,链表,缓存对象,递归

小结:
什么是数据结构?什么是算法?
数据结构就是能组在一起的集合对象。比如数组 链表,队列等
算法:就是解决问题的
如何学习(学习目的)
(1)提升能力的:全部学
(2)突击面试的:经典:链表,排序,二叉树,红黑树,B-tree ,B+tree
(3)进阶的:树论+图论+专项+每节课理论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值