浅谈数据结构和算法

数据结构到算法

什么是数据结构

到目前为止数据结构都没有一个非常统一的定义。
“数据结构是数据对象,以及存在于该对象的实例和组成实例的数据元素之间的各种联系。这些联系可以通过定义相关的函数来给出”–Sartaj Sahni
“数据结构是ADT(抽象数据类型 Abstract Data Type)的物理实现”–Clifford A.Shaffer
“数据结构(data structure)是计算机中存储、组织数据的方式。通常情况下,精心选择的数据结构可以带来最有效率的算法”–维基百科。
虽然对数据结构的说法各不相同,但是往往都会和另一个词联系在一起:算法。
说起数据,就难免让人联想到数据库,而数据库的用途就是管理储存起来的数据。重点往往体现在查找数据上,数据结构,相对底层的是如何储存数据,而往上就变成了查找数据,甚至是管理数据和分析数据。

算法

一个算法必须具备以下性质:
(1)算法首先必须是正确的,即对于任意的一组输入,包括合理的输入与不合理的输入,总能得到预期的输出。如果一个算法只是对合理的输入才能得到预期的输出,而在异常情况下却无法预料输出的结果,那么它就不是正确的。
(2)算法必须是由一系列具体步骤组成的,并且每一步都能够被计算机所理解和执行,而不是抽象和模糊的概念。
(3)每个步骤都有确定的执行顺序,即上一步在哪里;下一步是什么,都必须明确,无二义性。
(4)无论算法有多么复杂,都必须在有限步之后结束并终止运行;即算法的步骤必须是有限的。在任何情况下,算法都不能陷入无限循环中。
一个问题的解决方案可以有多种表达方式;但只有满足以上4个条件的解才能称之为算法。
算法的解释和数据结构有着非常明显的交集,主要体现在处理数据的问题上。

数据结构和算法

数据结构首先在体现在存放的方式,存储数据的逻辑,而计算机算法可以利用二分查找这样的方式来查找,不仅仅是这样,数据存放无可避免的问题是排序,而排序的方式有很多种,对于不同的数据,用不同的算法会使效率有明显不同,主要体现在时间复杂度和空间复杂度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值