数据结构和算法的关系

数据结构和算法的关系

针对Python数据结构与算法(裘宗燕版)中的第一章绪论最后的问题

数据结构

概念

数据与数据之间的结构关系(数组、队列、树、图等结构)

类别

分为 逻辑数据结构存储数据结构两种

存储方法

  1. 顺序存储方法(顺序存储结构)
  2. 链接存储方法(链式存储结构)

同一种逻辑结构可采用不同的存储方法(以上两种之一或组合),这主要考虑的是运算方便及算法的时空要求。

算法

解决问题的步骤

总结

程序 = 数据结构 + 算法

数据是程序的中心。数据结构和算法两个概念间的逻辑关系贯穿了整个程序世界,首先二者表现为不可分割的关系。没有数据间的有机关系,程序根本无法设计。

数据结构与算法关系

数据结构是底层,算法高层。数据结构为算法提供服务。算法围绕数据结构操作。

解决问题(算法)需要选择正确的数据结构

例如:算法中经常需要对数据进行增加和删除用链表数据结构效率高,数组数据结构因为增加和删除需要移动数字每个元素所有效率低。

数据结构特点

每种数据结构都具有自己的特点。例如:队列:先进先出。栈:先进后出。

算法的特征

算法具有五个基本特征:输入、输出、有穷性、确定性和可行性。

数据结构应用

数据结构往往同高效的检索算法、索引技术、排序算法有关

数据结构(逻辑数据结构)通过计算机语言来实现数据结构(存储数据结构)

例如:树型数据结构:通过计算机语言中的数组(节点)和指针(指向父节点)来实现。

存储结构

逻辑数据结构的实现。存储结构通过计算机语言实现。

例如:堆数据结构,堆是一棵完全二叉树,所以适宜采用顺序存储结构(顺序存储:数组),这样能够充分利用存储空间。

算法目的

算法是为数据结构服务。例如:数据结构通常伴随有查找算法、排序算法等

数据结构的优劣

一种数据结构的优劣是在实现其各种运算的算法中体现的。

数据结构和算法的关系

Original: https://www.cnblogs.com/zzs0626/p/16286339.html
Author: 顺溜_7
Title: 数据结构和算法的关系

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/582438/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • spring-data-redis 2.0 的使用

    在使用Spring Boot2.x运行Redis时,发现百度不到顺手的文档,搞通后发现其实这个过程非常简单和简洁,觉得有必要拿出来分享一下。 Spring Boot2.x 不再使用…

    Linux 2023年5月28日
    0116
  • .NET客户端实现Redis中的管道(PipeLine)与事物(Transactions)

    序言 Redis中的管道(PipeLine)特性:简述一下就是,Redis如何从客户端一次发送多个命令,服务端到客户端如何一次性响应多个命令。 Redis使用的是客户端-服务器模型…

    Linux 2023年5月28日
    0116
  • 使用多线程提高REST服务器性能

    异步处理REST服务 1、使用Runnable异步处理Rest服务 释放主线程,启用副线程进行处理,副线程处理完成后直接返回请求 主要代码 import java.util.con…

    Linux 2023年6月7日
    0115
  • Hadoop 调优

    Hadoop 调优 HDFS 调优 hdfs-site.xml 1. hadoop 文件块大小,通常为 128MB 或 256MB dfs.block.size 134217728…

    Linux 2023年6月8日
    093
  • shell 中的EOF

    EOF是(END Of File)的缩写,表示自定义终止符。既然自定义,那么EOF就不是固定的,可以随意设置别名,在linux按ctrl-d 就代表EOF。EOF一般会配合cat能…

    Linux 2023年5月28日
    0108
  • 一篇”水文“带你解剖HTML中的ID属性以及和Class属性的区别。

    写在开篇 哈喽!我又来写”水文”了,回顾上篇讲到的class属性,那么class属性和本篇要讲的id属性有什么不一样呢?跟随笔者步伐,一一解剖。 HTML中…

    Linux 2023年6月7日
    099
  • redis分享PPT材料

    上次在公司类做了一个redis分享,特别想把ppt上传上来,好像博客园不支持,那就截图把 1.简介 redis是什么: redis是一个nosql(not only sql不仅仅只…

    Linux 2023年5月28日
    075
  • Linux磁盘管理

    一、磁盘管理 Linux 磁盘管理好坏直接关系到整个系统的性能问题。 Linux 磁盘管理常用的三个命令为 df、 du 和 fdisk。 df(英文全称:disk full):列…

    Linux 2023年5月27日
    098
  • [转帖]shell 学习之正则、别名以及管道重定向

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年5月28日
    096
  • SLF4J 日志门面

    SLF4J( Simple Logging Facade For Java),即 简单日志门面。主要是为了给 Java 日志访问提供一套标准、规范的 API 框架,其主要意义在于提…

    Linux 2023年6月8日
    091
  • Nginx禁止ip加端口访问

    使用 iptables 限制对应端口,再利用Nginx将80端口转发到对应端口 CentOS7默认的防火墙是 firewalle,先看看服务器中有没有安装 iptables [ro…

    Linux 2023年5月27日
    089
  • 实验一 密码引擎-4-国䀄算法交叉测试

    任务详情 0 2人一组,创建一个文件,文件名为小组成员学号,内容为小组成员学号和姓名1 在Ubuntu中使用OpenSSL用SM4算法加密上述文件,然后用龙脉eKey解密,提交代码…

    Linux 2023年6月8日
    097
  • arch安装桌面环境

    arch可以安装图形用户界面需要的软件包有:xorg-server,xorg-xinit,xfce4 xorg是linux桌面环境下的服务程序,xorg-init是启动xorg的客…

    Linux 2023年6月13日
    086
  • shell中的##*,%%*问题

    假设我们定义了一个变量为:file=/dir1/dir2/dir3/my.file.txt 可以用${ }分别替换得到不同的值:${file#/}:删掉第一个 / 及其左边的字符串…

    Linux 2023年5月28日
    068
  • Centos7 安装部署Kubernetes(k8s)集群

    一.系统环境 二.前言 三.Kubernetes 3.1 概述 3.2 Kubernetes 组件 3.2.1 控制平面组件 3.2.2 Node组件 四.安装部署Kubernet…

    Linux 2023年6月7日
    0100
  • 工程课Linux第一节笔记

    上课笔记 文件系统结构 /根目录 /bin/ 存放系统命令,普通用户与root都可以执行 /etc/ 配置文件保存位置 /lib/ 系统调用的函数库保存位置 /var/ 目录用于存…

    Linux 2023年6月6日
    080
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球