数据结构与算法(概念)

本文阐述了学习数据结构和算法的重要性,指出它们并非只适用于高级程序员,而是对所有开发者都有益。数据结构和算法能够优化代码性能,降低空间和时间复杂度,锻炼逻辑思维,并有助于理解和运用各种软件框架。了解数据结构如数组、链表、队列和栈以及算法如排序、搜索等,能够提升解决问题的能力,使你看待问题和解决问题的方式更为深入。
摘要由CSDN通过智能技术生成

数据结构和算法的概述

为什么要学习数据结构和算法

误区!

1:认为学习数据结构和算法需要很扎实的数学和编程功底,学起来不容易

2:数据结构和算法在平时开发过程中应用并不多,而且有现成的类库接口让我们调用,没必要花太多时间去研究

疑问?

为什么数据结构和算法的使用率那么低,大公司还必问呢?这是因为数据结构和算法真的很重要,而且使用率并不低,所有的程序中都有数据结构和算法的身影,他们默默为程序服务,只是你没有去重视罢了

举例我们为什么要学好数据结构和算法的原因

1提升代码性能,节省空间复杂度和时间复杂度;

2算法锻炼自己的逻辑思维

3你会把自觉的考虑你写的代码处理数据量级的多少,会考虑你的代码是否能处理大量数据的情况

4更好的理解应用软件和框架,很多知名软件和框架中都大量用了数据结构和算法,比如mysql的索引    用了b+数,redis的list底层用了跳跃表,理解这些数据结构能更好的帮助我们理解使用这些软件

5掌握数据结构与算法,你看待问题的深度,解决问题的角度就会完全不一样.

6一流程序员搞算法,二流程序员搞框架,三流程序员搞业务;

数据结构和算法介绍

  算法

          是指题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的机制.也就是说,能够对一定规范的输入,在有限时间内获得所需要的输出.如果一个算法有缺陷.或不适合某个问题,执行这个算法将不会解决这个问题.不同的算法可能用不同的时间,空间或者效率来完成同样的任务,一个算法的优劣可以用空间复杂度与时间复杂度来衡量.算法是独立存在的一种解决问题的方法和思想.

对于算法而言,实现的语言并不重要,重要的的是思想.

算法可以不同的语言描述实现版本(如C描述.C++描述,Python描述等)

数据结构

       数据结构就是把数据组织起来,为了更方便的使用数据为我们解决问题,需要将数据保存下来,然后根据数据存储飞方式来设计算法实现进行处理,那么数据存储方式不同就会导致需要不同的算法进行处理.我们希望算法解决问题的效率越快越好,于是我们就考虑要将数据如何保存的问题,这就是数据结构。

数据结构是计算机存储,组织数据的方式,数据结构是指相互之间存在一种或者多种特定关系数据元素的集合。

数据结构和算法的关系

   程序=数据结构+算法

   数据结构是算法的基础。

   图书馆储存书籍你肯定见过?为了方便查找,图书管理员一般会将书籍分门别类进行"储存".按照一定的规律进行编号,这就是书籍这种"数据"的存储结构.

  那我们如何查找一本书呢?有很多种办法,当然你可以一本一本的找,也可以先根据书的类别的编号,是人文,还是科学,计算机,来定位书架,然后在依次查找,堂统的说,这些方法都是算法.

数据结构和算法是相辅相成的,数据结构是为算法服务的,算法的作用在特定的数据结构之上,因此,我们无法孤立数据结构来讲算法,也无法孤立算法来讲数据结构.

线性结构和非线性结构

线性结构

线性结构作为最常用的数据结构,其特点是数据元素之间一对一的线性关系.

线性结构有两种不同的储存结构,即顺序储存结构(数组)和链式储存结构(链表).

顺序储存的线性表称为顺序表,顺序表中的储存元素是连续的.

链式储存的线性表称为链表,链表中的储存元素不一定是连续的,元素节点存放数据元素及相邻元素的地址信息.

线性结构常见的有:数组,队列,链表和栈.

线性结构:是一个有序数据元素的集合

 1顺序存储结构2链式存储结构

 非线性结构

二维数组,多维数组,广义表,树结构,图结构.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值