记得是大一大二的时候学习了数据结构。时间过的好快,现在实现了,现在感觉自己的基础好差很多都不会。欠的帐还是要还的!

什么是数据结构?什么是算法?

呃呃呃呃 哎….不会。

多次参加了MOOC姥姥的数据结构,都没有坚持下来,希望这次可以坚持下来。

引用姥姥的例子:如果给你一堆书你会怎么放?

想怎么放就怎么放,哈哈。

如果书不多,我们一般是一本插着一本的放着。如下图

要是书的规模很大呢?如学校图书馆里面的书如果是按上述一本一本的插入,那么以后需要找书的时候是不是累死人了。如下图

所以答案是看书的规模。


什么是数据结构?

数据是什么?结构是什么?

参考大话数据结构,几个术语的定义

数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合

其实就是图书馆中所有的书。

数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录。

就是书。

数据项:一个数据元素可以由若干个数据项组成。

其实就是书名、作者、出版社啥的….

class Book {
//书名
private String bookName;
//作者
private String bookAuthor;
//出版社
private String bookPress;
}

其实一个Book对象就是数据元素,bookName、bookAuthor、bookPress就是数据项。

数据对象:是性质相同的数据元素的集合,是数据的子集。

其实就是某一类书。如图下图都是数据结构一类的书

是不是明白了什么是数据?哈哈 还是需要结合例子理解的深入啊。

什么是结构?

逻辑结构、物理结构。

逻辑结构:是指数据对象中数据元素之间的相互关系。包括集合结构、线性结构、树形结构、图形结构。

集合结构:集合结构中的数据元素除了同属于一个集合外,它们之间没有其它关系。

线性结构:线性结构中的数据之间是一对一的关系。

树形结构:树形结构中的数据之间存在一种一对多的层次关系。

图形结构:图形结构的数据元素是多对多的关系。


物理结构:是指数据的逻辑结构在计算机中的存储形式。顺序存储和链式存储。

顺序存储:是把数据元素存放在地址连续的存储单元里。

链式存储:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。


什么是数据结构?

Sartaj Sahni在他的《数据结构、算法与应用》一书中称:“数据结构是数据对象,以及存在于该对象的实例合组成实例的数据元素之间的各种联系。这些联系可以通过定义相关的函数来给出。”他将数据对象(data object)定义为“一个数据对象是实例或值的集合”。

Clifford A.Shaffer在《数据结构与算法分析》一书中的定义是:“数据结构是 ADT(抽象数据类型Abstract Data Type) 的物理实现。”

大话数据结构:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。

姥姥:数据结构包括数据对象集以及它们在计算机中的组织方式,即它们的逻辑结构和物理存储结构,同时还包括与数据对象集相关的操作集,以及实现这些操作的最高效的算法。

个人:就是把图书馆中的书转化为一些字符数据存入电脑中,以及对这些数据对象集的操作。如找书,摆放放书等。


什么是算法?

还是图书馆的例子,如果一本一本找累死人,要是有个索引,先找哪一类这样会快很多。如何查找其实就是算法。

算法是解决问题步骤的有限集合,通常用某一种计算机语言进行伪码描述。通常用时间复杂度和空间复杂度来衡量算法的优劣。

算法的五大特征:输入、输出、有穷性、确定性、可行性。

输入:零个或多个输入。

输出:一个或多个输出。

有穷性:有限步骤后在可接受时间内完成。

确定性:每个步骤都有确定含义,无二义性。

可行性:每一步都是可行的。

算法设计要求:正确性、可读性、健壮性、时间效率高和存储低。

正确性:有输入输出,无二义性,有正确答案。

可读性:方便阅读。

健壮性:输入不合法能处理

时间效率高和存储低:时间空间复杂度越低越好。


这就是数据结构和算法。

什么是数据结构?什么是算法相关推荐

  1. 【从蛋壳到满天飞】JS 数据结构解析和算法实现-AVL树(一)

    前言 [从蛋壳到满天飞]JS 数据结构解析和算法实现,全部文章大概的内容如下: Arrays(数组).Stacks(栈).Queues(队列).LinkedList(链表).Recursion(递归思 ...

  2. python数据结构推荐书-「算法与数据结构」从入门到进阶吐血整理推荐书单

    推荐一下「算法与数据结构」从入门到进阶的书单. 一.入门系列 这些书籍通过图片.打比方等通俗易懂的方法来讲述,让你能达到懂一些基础算法,线性表,堆栈,队列,树,图,DP算法,背包问题等,不要求会实现, ...

  3. 【从蛋壳到满天飞】JS 数据结构解析和算法实现-哈希表

    前言 [从蛋壳到满天飞]JS 数据结构解析和算法实现,全部文章大概的内容如下: Arrays(数组).Stacks(栈).Queues(队列).LinkedList(链表).Recursion(递归思 ...

  4. Algorithm:【Algorithm算法进阶之路】之数据结构二十多种算法演示

    Algorithm:[Algorithm算法进阶之路]之数据结构二十多种算法演示 目录 一.数据结构算法 1.顺序表 2.链表 3.栈和队列 4.串的模式匹配 5.稀疏矩阵 6.广义表 7.二叉树 8 ...

  5. 大话数据结构:最短路径算法

    dijkstra最短路径算法 迪杰斯特算法的核心是首先正向把离起点最近的点一个一个找出来,然后从终点开始逆向计算最短路径 利用图数据结构实现dijkstra算法的伪代码如下 {记录所有点到起点的距离并 ...

  6. python处理mysql数据结构_python环境下使用mysql数据及数据结构和二叉树算法(图)...

    python环境下使用mysql数据及数据结构和二叉树算法(图): 1 python环境下使用mysql 2使用的是 pymysql库 3 开始-->创建connection-->获取cu ...

  7. 【从蛋壳到满天飞】JS 数据结构解析和算法实现-堆和优先队列(一)

    前言 [从蛋壳到满天飞]JS 数据结构解析和算法实现,全部文章大概的内容如下: Arrays(数组).Stacks(栈).Queues(队列).LinkedList(链表).Recursion(递归思 ...

  8. 数据结构与就算法(选择排序)

    数据结构与就算法(选择排序) 数据!您好 2019-01-07 05:16:18 2736 收藏 17 版权 1>什么是选择排序,选择排序和插入排序的思想差不多,也分已排序区间和未排序区间,只是 ...

  9. 常用数据结构以及数据结构的排序算法

    2019独角兽企业重金招聘Python工程师标准>>> 数组 (Array) 在程序设计中,为了处理方便, 把具有相同类型的若干 变量按有序的形式组织起来.这些按序排列的同类数据元素 ...

  10. 「数据结构」普林斯顿算法课第二周作业

    「数据结构」普林斯顿算法课第二周作业 Algorithm I, Princeton 编程作业: Deques and Randomized Queues 思路 Deque.java Randomize ...

最新文章

  1. iis下 ActiveSync插件无法访问(下)
  2. c#_可扩展标记语言XML
  3. C 语言编程 — 结构体的数据类型转换
  4. 【错误记录】Android Studio 编译报错 ( This Gradle plugin requires a newer IDE able to request IDE model leve )
  5. 开启mysql慢查询日志,不重启数据库的方法
  6. libgdx游戏引擎开发笔记(十)SuperJumper游戏例子的讲解(篇四)---- 主游戏界面内部框架编写...
  7. 公司的年度汇报怎么写 年底述职报告写法
  8. 【SQL】找出行数与自增标识值不相等的表(即有缺行)
  9. 11个Java 开源 socket框架
  10. Gson源码解析之InstanceCreator简单说明
  11. equals方法的小结
  12. C语言员工信息管理系统
  13. 什么是线性同余法c语言,C语言线性同余法产生随机数
  14. PDF可以转换成CAD图纸吗?
  15. 用计算机进行进制换算方法,计算机进制怎么转换?计算机进制换算方法
  16. unity 中Line Renderser初始化有额外线段
  17. 获取iOS设备唯一标识
  18. 剑指offer做题记录
  19. 作物产量常用的单位换算公式
  20. 抖音飞鸽售前售后相关指标

热门文章

  1. python实现jacknife交叉验证
  2. 微信授权登录(微信订阅号使用测试账号)
  3. ArcEngine 10.2 画圆形
  4. 谷粒学院day08——课程章节与小节的实现
  5. 土旦:关于display:flex碰上white-space nowrap 影响布局的问题
  6. 百度小程序如何引流?给用户带来了更便捷、更人性化的体验
  7. 华为云服务部署Rstudio Server
  8. 无盘服务器4根网线雨两根网线的区别,网线接法的描述:实际用到4根。
  9. 2路继电器控制直流电机正反转问题
  10. Jsonviewer2 for Notepad++ 64 bit/位