暴力理解数据结构与算法1------概论

数据结构与算法

一.数据结构与算法概论

1.问题求解

我们编写程序的目的就在于解决实际的应用问题,而我们的思路就应该是分析问题,找到需求,然后确定恰当的数据结构表示数学模型,就是把问题变成数学题,接着在数据模型的基础上设计合适的算法,像我们做一道数学题,学渣是什么都看不懂,正常人是找到解题关键把题目解出来,而学霸这是瞄一眼,就知道这题有多少种解题方法,哪种步骤最少,能最快做出这道题的答案。

2.数据结构

结构=实体 + 关系

数据结构:
按照逻辑关系组织起来的一批数据(逻辑)
按一定的存储方法把它存储在计算机中(存储)
在这些数据上定义了一个运算的集合(运算)

数据结构的逻辑组织

线性结构
线性表(表,栈,队列,串等)

非线性结构
树(二叉树,Huffman树,二叉检索树等)
图(有向图,无向图等)

图–>树–>二叉树–>线性表

数据的存储结构

逻辑结构到物理存储空间的映射
四类存储结构:

  1. 顺序
  2. 链接
  3. 索引
  4. 散列

3.算法特性与分类

问题------算法------程序

通用性
对参数化输入进行问题求解
保证计算结构的正确性

有效性
算法是有限条指令组成的指令序列
即由一系列具体步骤组成

确定性
算法描述中的下一步应执行的步骤必须明确

有穷性
算法的执行必须在有限步内结束

基本算法分类

  • 穷举法
  • 回溯,搜索
  • 递归分治
  • 贪心法
  • 动态规划

算法的效率与度量

算法渐进分析大O表示法
函数f,g定义域为自然数,值域非负实数集
定义:如果存在正数c和n0,使得对任意的n≥n0,都有f(n)≤cg(n0)
称f(n)在集合O(g(n))中,简称f(n)是O(g(n))的,或f(n)=O(g(n))

大Ω表示法与大O表示法相反,大O是上限,大Ω是下限
当上下限相同时可以用θ表示法

大O表示法的运算法则
加法规则:f1(n)+f2(n)=O(max(f1(n),f2(n)))
乘法规则:f1(n)×f2(n)=O(f1(n),f2(n))
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值