2022-10-07 数据结构和算法概述 --韩顺平
数据结构和算法的关系
数据 data 结构(structure)是一门研究组织数据方式的学科,有了编程语言也就有了数据结构.学好数据结构可以编写出更加漂亮,更加有效率的代码。
学习好数据结构就要多多考虑如何将生活中遇到的问题,用程序去实现解决.
程序 = 数据结构 + 算法
数据结构是算法的基础, 换言之,想要学好算法,需要把数据结构学到位。
实际编程中遇到的问题
问题一 字符串替换问题
小结:需要使用到单链表数据结构
问题二 一个五子棋程序
如何判断游戏的输赢,并可以完成存盘退出和继续上局的功能
- 棋盘 二维数组=>(稀疏数组)-> 写入文件 【存档功能】
- Josephu 问题为:设编号为 1,2,… n 的 n 个人围坐一圈,约定编号为 k(1<=k<=n)的人从 1 开始报数,数到 m 的那个人出列,它的下一位又从 1 开始报数,数到 m 的那个人又出列,依次类推,直到所有人出列为止, 由此产生一个出队编号的序列。
- 提示:用一个不带头结点的循环链表来处理 Josephu 问题:先构成一个有 n 个结点的单循环链表(单向环形链表),然后由 k 结点起从 1 开始计数,计到 m 时,对应结点从链表中删除,然后再从被删除结点的下一个结点又从 1 开始计数,直到最后一个结点从链表中删除算法结束。
- 小结:完成约瑟夫问题,需要使用到单向环形链表 这个数据结构
其它常见算法问题:
线性结构和非线性结构
- 线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系
- 线性结构有两种不同的存储结构,即顺序存储结构(数组)和链式存储结构(链表)。顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的
- 链式存储的线性表称为链表,链表中的存储元素不一定是连续的,元素节点中存放数据元素以及相邻元素的地址信息
- 线性结构常见的有:数组、队列、链表和栈,后面我们会详细讲解.
2022-10-07 数据结构和算法概述 --韩顺平相关推荐
- 数据结构和算法概述及算法分析
一.数据结构和算法概述 B站学习视频 1.1首先我们为什么要学习数据结构? 数据结构和算法这门课程无论在哪个学校的计算机专业,都是一门必修课,因为这门课程非常重要的,是编程必备的基础,但是这门课程是一 ...
- 【自学笔记】尚硅谷数据结构与算法Chapter 1 数据结构与算法概述
Chapter 1 数据结构与算法概述 文章目录 Chapter 1 数据结构与算法概述 1.1.1 数据结构和算法的关系 1.2.1 线性结构 1.2.2 非线性结构 尚硅谷数据结构B站学习视频地址 ...
- 尚硅谷Java数据结构和java算法,韩顺平数据结构和算法课后作业01
尚硅谷Java数据结构和java算法,韩顺平数据结构和算法课后作业第一题 要求: 1)在前面的基础上,将稀疏数组保存到磁盘上,比如map.data 2) 恢复原来的数组时,读取map.data进行恢复 ...
- 嵌入式团队培训_数据结构和算法概述
嵌入式团队培训_数据结构与算法概述 要求:理解并记忆即可,会求解算法的时间复杂度 一:数据结构 1.逻辑结构: 2.物理结构 3.抽象数据类型 二:算法 1.算法的五个基本特征: 2.算法设计的要求 ...
- 年后跳槽BAT必看:10种数据结构、算法和编程课助你面试通关
作者 | javinpaul 译者 | 大鱼 编辑 | 一一 出品 | AI 科技大本营 进入 BAT 这样的巨头企业工作,无疑是很多程序员的梦想.但事实上,能通过这些公司高难度编程面试的只是一小撮人 ...
- 数据结构与算法概述——C语言
数据结构是什么? 数据结构,可以将之分为"数据"和"结构"两个方面去理解. 数据,很好理解.都说人离不开空气, 感觉剥夺实验 告诉我们,人也离不开信息,而 信息 ...
- 克鲁斯卡尔算法---(韩顺平数据结构)笔记
克鲁斯卡尔算法 本质:从某一顶点为起点,逐步找各个顶点最小权值的边来构成最小生成树.那我们也可以直接从边出发,寻找权值最小的边来构建最小生成树.不过在构建的过程中要考虑是否会构成回环的情况 用来求加权 ...
- 2022/10/07
1ritual 仪式 典礼 惯例 2.steep 陡峭 急剧升降的 浸 泡 3.feeble 虚弱 衰弱 无力的 4.analogy 类比 类推 5.lane 小路 小道 航线 车道 6.recipi ...
- 【数据结构与算法篇】 哈希表原理、底层实现剖析
一个在校大二学生,在CSDN记录自我成长!!!最近在自学数据结构和算法时,学到了哈希表,有很多地方都不明白.如何使用哈希表?原理是什么?如何工作的?我们如何设计哈希表?等等,所以就在网络上查了相关博客 ...
最新文章
- 设计模式(2)工厂方法模式(Factory Method)
- TOMCAT 高并发配置
- 孕期出血是否先兆流产——B超看婴儿是否在子宫内+hcg值是否过低孕激素不足...
- caffe训练中断后如何承接上次继续训练
- 检查坏道右键单击盘符/属性/工具中的查错。
- 如何:使用Json插入数据库并从中读取
- 基于canvas的原生JS时钟效果
- 炉石整活拔线方法_酒馆战棋:整活如何简单“拔线”?瓦娘在线教学,却3本得死神?...
- 内核kconfig语法及原理
- Boost.log链接问题
- 微信支付商户平台登录方法详解 微信商户平台如何登录
- 移动光猫怎么设置虚拟服务器设置,移动光猫如何设置自带的WIFI无线功能
- Apache Log4j2远程代码执行漏洞复现
- 什么是《现代 JavaScript 教程》?
- 变声算法实现(基频追踪+SOLA)
- 让老师们哭笑不得的天才学生们
- 如何快速学会一项新技能?
- 物联网平台技术架构和应用场景
- 一个实施 + 一个软件负责人 = 项目经理?
- 川大计算机系导师,川大计算机学院硕士生导师简介