IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 大话数据结构第二章 -> 正文阅读

[数据结构与算法]大话数据结构第二章

记:冬天真的处于冬眠状态了,一个午觉睡了一下午...就离谱呐,晚上去健身了,第二章库存,惭愧,今天没学习成,大话数据库看到第三章了,因为开始提到了算法的实现,所以打算把C++模块也复习起来创个文件夹,自己用C++试着写写

2.2 数据结构与算法关系


?? ?介绍了重要的数据结构后再把相应的算法拿出来讲,而不是单独讲哪一方面(第三章开始体会到两者的关系)

2.4 算法定义

? ? ?算法(Algorithm):是描述解决问题的方法,对计算机来说就是指令的有限序列。

? ? ?指令:能被人或机器等计算装置执行

? ? ?为了解决某个问题,就需要把指令表示成一定的操作序列,操作序列包括一系列操作,每个操作都完成特定的功能,这就是算法了(个人理解:相当于做一道菜,按照食谱一步步完成指令)

? ? ?对于一个问题来说有很多种算法来解决,但没有通用的算法(就像没有包治百病的药)

2.5 算法的特性

? ? 算法的五个基本特性:
?? ?1.输入输出:零个(直接输出hello world就不需要输入)或多个输入,至少一个(不需要输出就不用算法了)或多个输出
?? ?2.有穷性:算法在执行了有限的步骤后,自动结束,而不是无限循环
?? ?3.确定性:每一步都有确定的含义,不会出现二义性
?? ?4.可行性:每一步必须可行,每一步能通过执行有限次数完成

2.6 算法设计的要求

? ? ?虽然算法不唯一,但相对好的算法应该具备以下性质:

? ? ?1.正确性:算法没有语法错误;对于合法输入的数据能够满足要求的输出结果;对于非法输入数据能够有错误说明(一般情况下,判断算法是否正确的标准);对刁钻的测试数据也能有满足需求的输出(最难的要求)
?? ?2.可读性:便于他人理解
?? ?3.健壮性:当输入数据不合法时,算法也能作出相关处理,而不是产生异常或随机结果
?? ?4.时间效率高和存储量低:尽量保持时间复杂度和空间复杂度都低(这个地方是个人理解的,不知道对不对)

2.7 算法效率的度量方法


?? ?事后统计方法:设计好测试程序和数据再利用计算机进行运行比较
?? ?事前分析估算法:在程序编制前就用统计学方法对算法进行估计
?? ??? ??? ??? ??? ?通过算法实践复杂度来估算算法时间效率


2.8 函数的渐进增长


?? ?在输入规模一定(都是n)的情况下,只要超过一个数值N(n>N之后),这个函数f(n)就总是大于另一个函数g(n),我们则称函数是渐进增长的。
?? ??? ?1.随着n的增大,后面加的常数基本不影响算法变化,所以可以忽略这些加法常数
?? ??? ?2.最高次项相乘的常数并不重要
?? ??? ?3.最高此项的指数大的,函数随着n的增长,结果也会变得增长特别快
?? ?总结:判断一个算法的效率,函数中的常数和其他次要项常常可以忽略,更应该关注主项(最高阶项)的阶数


2.9 算法时间复杂度


?? ?算法时间复杂度:即算法的时间度量,是算法的渐进时间复杂度简称,记作T(n)=O(f(n)),T(n)是语句总的执行次数,f(n)是输入规模n的某个函数。随着n的增大,T(n)增长最慢的算法为最优算法
?? ?大O记法:用大写O()来体现算法时间复杂的记法
?? ?O(1)常数阶 ?O(n)线性阶 ? O(n2)平方阶
?? ?如何分析算法的时间复杂度呢?即如何推导大O阶(基本就是2.8总结的三点)
?? ??? ?1.用常数1取代所有的加法常数
?? ??? ?2.只保留最高阶项
?? ??? ?3. 如果最高阶存在且不为1,则去掉它的系数


2.10 常见的时间复杂度:

?常见的时间复杂度表:


?? ?所耗费的时间从小到大依次是:

?

2.11 最坏情况和平均情况?? ?


?? ?最坏运行时间:运行时间不会比这个再长了(打麻将摸到最后一张108张),没有特殊说明情况下的默认
?? ?平均运行时间:期望的运行时间,n/2次后发现目标元素(从概率角度,假设某个数字在每个位置的可能性是相同的)

2.12 算法空间复杂度


?? ?空间上的开销来换取换取时间,其实两种方法没有好坏之分,就像考研报班,有预算的就直接报班,没钱就花时间慢慢摸索准备,具体情况具体分析。
?? ?

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-11-11 12:57:43  更:2021-11-11 12:59:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:46:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码