一、 什么是数据结构?什么是算法?为什么要学习它们?
首先是数据结构,我们所说的数据结构大致又被细分为数据和结构两大块
数据:客观事物的符号表示,是所有能输入到计算机中并能被计算机程序处理的符号的总称。如:1、数学计算中用到的整数和实数;2、文本编辑中用到的字符串;3、多媒体程序处理的图形、图像、声音及动画等通过特殊编码定义后的数据。
结构:由组成整体的各部分的搭配和安排。生活中关于“结构”我们经常见到,如:一棵大树可分为树干、枝丫和树根,河流、马路的结构同理也可这样划分;当然这是在我们身边显而易见的事物,除此之外如公司里面的职位也是一种结构,如图:
在数据结构当中我们有几种常见的结构:
接着是算法,算法定义:一个有穷的指令集,这些指令为解决某一特定任务规定了一个运算序列.
算法的描述方式可以是自然语言、流程图、程序设计语言、伪码。
算法的特性:
输入 有0个或多个输入
输出 有一个或多个输出(处理结果)
确定性 每步定义都是确切、无歧义的
有穷性 算法应在执行有穷步后结束
有效性 每一条运算应足够基本
对于算法的评价:1、正确性;2、可读性;3、健壮性;4、高效性(运行所需的时间和空间代价)
在讲解完数据结构与算法之后相信大家对它有了基本的认识,有些人可能会说我没什么要学习数据结构与算法呢?
二、 为什么要学习算法?
高级算法工程师在社会上是供不应求,所以这第一点学习算法可以让我们找到一个高薪的工作;
面对参加本专业研究生考试的在校大学生而言,数据结构在总分中占的比重高;
打比赛,比如最近华为公司的2019华为软件精英挑战赛,面对这样的大型比赛,数据结构和算法是参赛选手的重量级武器。