《数据结构与算法 C语言版》—— 1.8小结

1.8小结

本章介绍了数据结构的研究对象、基本概念与术语、数据类型和抽象数据类型,以及算法、算法的设计原则、算法效率的衡量方法等。主要内容如下。
(1)数据结构的研究对象
数据结构是一门讨论“描述现实世界实体的数学模型(非数值计算)及其上的操作在计算机中如何表示和实现”的学科。数据结构的内容包括3个“层次”的5个“要素”,如表13所示。
(2)基本概念与术语
简单地说,数据就是计算机操作的对象的总称。数据元素是数据的基本单位,它是数据中的一个“个体”。数据对象是具有相同性质的数据元素的集合,是数据的一个子集。
数据结构是指相互之间存在一种或多种关系的特性相同的数据元素的集合。数据结构有三个要素:数据元素的集合,数据元素之间关系的集合,定义在其上的操作。
数据的逻辑结构是对数据元素之间的逻辑关系的描述,有集合结构、线性结构、树形结构和图形结构四种。
数据的存储结构是逻辑结构在计算机中的表示和实现,有顺序存储、链式存储、索引存储、哈希存储四种。
(3)数据类型与抽象数据类型
数据类型是一个值的集合和定义在此集合上的一组操作的总称。
抽象数据类型是指一个数学模型以及定义在此数学模型上的一组操作。抽象数据类型和数据类型实质上是一个概念,只是抽象数据类型的范围更广,除了已有的数据类型外,抽象数据类型还包括用户在设计软件系统时自己定义的数据类型。
(4)算法与算法分析
算法是对特定问题求解步骤的一种描述,是指令的有限序列。一个算法必须满足五个特性:有穷性、确定性、可行性、有输入、有输出。
算法与程序是两个不同的概念。程序不一定满足有穷性,但算法必须满足有穷性;程序中的指令必须是机器可执行的,而算法中的指令则无此限制;算法代表了对问题的解,而程序则是算法在计算机上的特定的实现。一个算法若用程序设计语言来描述,则它就是一个程序。
要设计一个“好”的算法,通常应考虑达到以下目标:正确性、可读性、健壮性、高效率与低存储量需求。
衡量算法效率通常有事后统计法和事前分析估算法两种方法。但事后统计法要运行算法,且易掩盖算法本身的优劣,所以衡量算法的效率采用事前分析估算法。算法的渐近时间复杂度记为T(n)= O(f(n)),是问题规模的函数。如果能计算算法中原操作的执行次数,则将其作为时间复杂度,否则将原操作的平均执行次数或最坏情况下原操作的执行次数作为其时间复杂度。
空间复杂度作为算法所需存储空间的量度,记作S(n)=O(g(n))。若所需额外空间相对于输入数据量来说是常数,则称此算法为原地工作。
学完本章后,要求清楚数据结构的三个层次、五个要素;掌握数据结构相关的基本概念,包括数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构等;了解抽象数据类型的定义、表示和实现方法;理解算法的定义和特性;掌握算法的时间复杂度分析。

时间: 2024-10-22 03:56:50

《数据结构与算法 C语言版》—— 1.8小结的相关文章

《TensorFlow技术解析与实战》——第1章 人工智能概述 1.1什么是人工智能

第一篇 基础篇 著名历史学家斯塔夫里阿诺斯在<全球通史>中,曾以15世纪的航海在"物理上"连通"各大洲"作为标志将人类历史划分为两个阶段.在我正在写作的<互联网通史>中,我把互联网这个"信息上"连通"人类个体"的物件作为划分人类历史的标志.而随着人工智能最近的崛起,我们又该思考重新划分了,因为人工智能将会在"信息上"连通"各个物体".到那时各个物体都有"

《TensorFlow技术解析与实战》——1.2 什么是深度学习

本节书摘来自异步社区<TensorFlow技术解析与实战>一书中的第1章,第1.2节,作者李嘉璇,更多章节内容可以访问"异步社区"公众号查看 1.2 什么是深度学习 深度学习,顾名思义,需要从"深度"和"学习"两方面来谈. 1.深度 深度学习的前身是人工神经网络(artificial neural network,ANN),它的基本特点就是试图模仿人脑的神经元之间传递和处理信息的模式.神经网络这个词本身可以指生物神经网络和人工神经网络

《TensorFlow技术解析与实战》——第2章 TensorFlow环境的准备

第2章 TensorFlow环境的准备 TensorFlow技术解析与实战本章的主要任务就是准备TensorFlow环境.与安装其他软件(如Caffe)相比,TensorFlow极容易安装,环境部署极为轻松. 接下来我们先介绍下载TensorFlow代码仓库,然后介绍基于pip的安装方式.基于Java的安装方式以及使用Bazel的源代码编译安装方式.

《TensorFlow技术解析与实战》——第1章 人工智能概述

第1章 人工智能概述 TensorFlow技术解析与实战有人说,人工智能在世界范围的流行,是因为那盘围棋.2016年3月,谷歌公司的AlphaGo向韩国棋院围棋九段大师李世石发起挑战,而这棋局走法的可能性有361!种,最终AlphaGo战胜了这场"棋局数比可见宇宙中的原子数还多"的智力游戏.2015年11月9日(在距这场比赛前4个月),谷歌公司开源了它的第二代深度学习系统TensorFlow,也就是AlphaGo的基础程序.

《TensorFlow技术解析与实战》——第一篇 基础篇

第一篇 基础篇 TensorFlow技术解析与实战著名历史学家斯塔夫里阿诺斯在<全球通史>中,曾以15世纪的航海在"物理上"连通"各大洲"作为标志将人类历史划分为两个阶段.在我正在写作的<互联网通史>中,我把互联网这个"信息上"连通"人类个体"的物件作为划分人类历史的标志.而随着人工智能最近的崛起,我们又该思考重新划分了,因为人工智能将会在"信息上"连通"各个物体"

《TensorFlow技术解析与实战》——第3章 可视化TensorFlow

第3章 可视化TensorFlow TensorFlow技术解析与实战可视化是认识程序的最直观方式.在做数据分析时,可视化一般是数据分析最后一步的结果呈现.把可视化放到"基础篇",是为了让读者在安装完成后,就能先看一下TensorFlow到底有哪些功能,直观感受一下深度学习的学习成果,让学习目标一目了然.

《TensorFlow技术解析与实战》——导读

前言 缘起 2017年2月,TensorFlow的首届开发者峰会(2017 TensorFlow Dev Summit)在美国的加利福尼亚州举行.在会上,谷歌公司宣布正式发布TensorFlow 1.0版本.本书就是基于最新的1.1.0版本来介绍TensorFlow的技术解析和实战. 人工智能大潮来了.2016年,AlphaGo击败围棋大师李世石后,人工智能的应用仿佛一夜之间遍地开花.在科技潮流的大环境中,现在硅谷的用人单位越来越倾向于雇用既懂理论(思考者)又懂编程(执行者)的工程师.思考者的日

《TensorFlow技术解析与实战》——2.6 小结

2.6 小结 本章介绍了TensorFlow环境的准备,分别讲解了使用pip命令.Java JAR文件.用Bazel工具对源代码进行编译这3种安装方式,以及在pip安装方式下,在Mac.Ubuntu/Linux.Windows系统上如何安装CPU版本和GPU版本的TensorFlow. 最后,讲了一些常用扩展的作用和安装,这些扩展在本书的"实战篇"中会用到.

《TensorFlow技术解析与实战》——1.8小结

1.8 小结 本章主要介绍了人工智能.机器学习.深度学习的关系,以及深度学习的学习步骤,分析了这个领域的相关人群,以及这个领域的重要赛事.然后,全面介绍了TensorFlow的作用.特性,并介绍了国内做人工智能的公司,讲述了目前在产业界进行的探索,和提供给开发者的一些基础平台.

《TensorFlow技术解析与实战》——3.4 小结

3.4 小结 可视化是研究深度学习的一个重要方向,有利于我们直观地探究训练过程中的每一步发生的变化.TensorFlow提供了强大的工具TensorBoard,不仅有完善的API接口,而且提供的面板也非常丰富.在4.3.2节我们会讲解实现TensorBoard的API.在第17章我们还会讲到TensorFlow的调试工具,调试和可视化配合起来,有利于精准地调整模型.