数据结构与算法

数据结构与算法系列 概念篇

最近在看关于数据结构与算法的视频,是浙大出的一个公开课视频。做个笔记,不太严谨。这篇主要是概念方面的,具体的知识点会陆续记录。

数据结构概念
给几个官方定义:
“数据结构是抽象数据类型的物理实现”
“数据结构是计算机中存储,组织数据的方式。通常情况下,精心选择的数据结构可以带来最优效率的算法”
有点不太好理解。。。那到底什么是数据结构?

1、数据结构就是关于数据对象在计算机中的组织方式
举个例子:图书馆的书籍是怎么摆放的,可以是随机摆放,一本挨着一本,也可以按照书的字母进行顺序摆放,等等有一系列的摆放方法。数据结构涉及到两种结构:

  • 逻辑结构:线性结构(一对一),树(一对多),图(多对多)
  • 物理存储结构:这些数在计算机内存里是怎么放的,数组、链表等等

2、数据对象必定与一系列加在其上的操作相关联,而实现这些操作所用的方法就是算法了
图书馆的书摆放好了,那来了一本新书该怎么放?我怎么找我想要的新书呢?等等,必定是要有一系列的操作的。

3、描述数据结构有一个很好的方法叫:抽象数据类型,包含了两个知识点

  • 数据类型:数据类型包含有数据对象集、数据集合相关联的操作集;面向对象语言里,通常都是都会把数据集和它相关的操作集封装在一个类里面
  • 抽象:描述数据类型的方法不依赖与具体的实现

算法概念

算法的概念没什么好讲的,主要是怎么去评价一个算法的好坏,先看两个概念,空间复杂度S(n):程序在执行时占用的存储单元长度,时间复杂度T(n):程序执行时耗费时间的长度,n代表着数据的规模;
但是一般我们不对算法做非常精细的分析,我们只需要粗略的知道它的一个增长趋势就可以了,于是就有了复杂度的渐进表示法:
T(n)=O( f(n))表示存在常数C>0,n0>0使得当n>n0时有T(n)<C.f(n) 意思就是时间复杂度T(n)写成大O(f(n))时,f(n)表现的是T(n)的一个上界;
T(n)=Ω( g(n) )则表示的是g(n)是T(n)的一个下界。
这里要记住一些常见的函数的增长趋势变化图 log n,n,nlogn,
n平方,2的n次方!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值