惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Simon Willison's Weblog
Simon Willison's Weblog
Help Net Security
Help Net Security
P
Privacy International News Feed
T
Threat Research - Cisco Blogs
C
Cisco Blogs
C
CERT Recently Published Vulnerability Notes
NISL@THU
NISL@THU
L
LINUX DO - 热门话题
Security Latest
Security Latest
A
Arctic Wolf
G
GRAHAM CLULEY
月光博客
月光博客
S
Securelist
D
Docker
J
Java Code Geeks
T
Troy Hunt's Blog
T
Tenable Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
SecWiki News
SecWiki News
S
Security @ Cisco Blogs
量子位
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
L
LINUX DO - 最新话题
Recent Commits to openclaw:main
Recent Commits to openclaw:main
aimingoo的专栏
aimingoo的专栏
博客园 - 【当耐特】
H
Heimdal Security Blog
The Hacker News
The Hacker News
博客园 - 三生石上(FineUI控件)
Application and Cybersecurity Blog
Application and Cybersecurity Blog
N
Netflix TechBlog - Medium
Vercel News
Vercel News
Forbes - Security
Forbes - Security
B
Blog RSS Feed
H
Hackread – Cybersecurity News, Data Breaches, AI and More
IT之家
IT之家
B
Blog
MongoDB | Blog
MongoDB | Blog
博客园 - 聂微东
Google DeepMind News
Google DeepMind News
S
Secure Thoughts
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Check Point Blog
云风的 BLOG
云风的 BLOG
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
T
The Blog of Author Tim Ferriss
L
Lohrmann on Cybersecurity
F
Full Disclosure
D
Darknet – Hacking Tools, Hacker News & Cyber Security
P
Proofpoint News Feed

博客园 - Jokeyyu

联想扬天V340笔记本进入BIOS currentTimeMillis获取时间异常,基于服务器获取当前世界真实时间 Android 11 wifiInfo.getSSID 获取不到WiFi名称 git 打补丁用.diff文件不能成功 打包的时候报错 app:lintVitalRelease ,不能下载kotlin-compiler-27.0.1.jar tag mismatch 注册了上下文菜单的列表长按没有效果 recycleview 支持context menu android studio 不能安装调试并没有提示哪里异常 mysql 将一个字段的值复制到另一个字段 新单词 part 20 git 打patch 流程 新单词 part 19 新单词 part 18 retrofit 同时上传文件和参数 reclyceview 实现自由拖动排序 Android material-design-icons 图标资源 好用的 pdf 加载工具 wifi 开发指南 viewbinding 和 include 标签同时使用时注意事项
数据结构笔记
Jokeyyu · 2020-12-02 · via 博客园 - Jokeyyu

1. 绪论

  1.1 一般来说,用计算机解决一个具体问题时,大致需要经过以下几个步骤:首先要从具体问题抽象出一个适当的数学模型(OOA,面向对象分析),然后设计一个解此数学模型的算法(OOD,面向对象设计),最后编出程序,进行测试、调整直至最终得到解答(OOP,面向对象编程)。寻求数学模型的实质是分析问题,从中提取出操作的对象,并找出这些操作对象之间含有的关系,然后用数学语言加以描述。

  1.2  数据(data),数据元素(data element)是数据的基本单位,一个数据元素可以由多个数据项(data item)组成,  数据对象(data object)是性质相同的数据元素的集合,是数据的一个子集。

  1.3 数据结构(data structure)是相互之间存在一种或多种特定关系的数据元素的集合。数据元素都不是孤立存在的,而是他们之间都存在着某种关系,这种数据元素之间的关系称为结构. 根据数据元素之间关系的不同特性,通常有以四种基本机构:(1)集合, 除了数据元素同属同一个集合外,别无其它关系;(2)线性结构, 数据元素之间存在一对一关系;(3)树形结构, 数据元素之间存在一对多的关系;(4)图状结构或网状结构, 数据元素之间存在多对多关系 

  1.4 数据结构定义形式如下:数据结构是一个二元组 Data_Structure = (D, S),其中D是数据元素的有限集, S是D上关系的有限集。结构中定义的关系描述是数据元素之间的逻辑关系,因此又称数据的逻辑结构

  1.5 数据结构在计算机中的表示(又称映像)称为数据的物理结构,也叫存储结构,他包括数据元素的表示和关系的表示

  1.6  算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中一条指令表示一个或多个操作,算法具有5个重要特性,即有穷性、确定性、可行性、输入、输出;

  1.7 一个好的算法,其特性包括正确性、可读性、健壮性(出现非法输入时也能够适当的做出反应或进行处理)、效率与低存储量需求

  1.8 度量程序的执行时间(算法效率)包括两种方法,第一种时事后统计,由于事后统计方法必须先运行程序,而且统计的时间依赖于计算机硬件和软件等环境因素,很容易掩盖算法本身的优劣,因此常常使用第二种事前分析的方法,一个程序运行的所消耗的时间取决于:1.依据的算法选用何种策略;2.问题的规模;3.书写程序使用的语言级别,语言级别越高,执行效率就越低;4.编译程序所产生的机器代码的质量;5.机器执行指令的速度

  1.9 时间复杂度 T(n) = O(f(n)),它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称做算法的渐近时间复杂度

2. 线性表