算法基础:数据结构与算法入门概览

本文介绍了算法的基本概念,强调其确定性、有穷性、可行性和输入输出特性。同时探讨了数据结构的重要性,包括线性结构、关联结构、树形结构及图形结构等基本类型。还概述了几种常见的算法设计思想,如贪婪法、分治法、动态规划法和穷举法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

算法是什么?

《算法导论》里将算法描述为定义良好的计算过程,取一个或者一组值作为输入,并产生一个或者一组值作为输出。

算法普遍具有的四大特征是:

  • 确定性,每个步骤是明确的,计算结果也是明确的;
  • 有穷性,计算步骤有限,必须有明确的结束条件;
  • 可行性,算法对问题有正确的结果;
  • 具有输入和输出
数据结构是什么?
  • 数据,计算机体系中的数据,是指能被计算机识别和处理的各种符号的总称。人类能识别的各种数据,如文字、语言和图像,在计算机内部都是以二进制的形式存在,并且这些二进制数据之间存在着各种组织关系。
  • 数据结构,我们通常所说的数据结构包含两层意思,一是某数据的集合,二是数据之间的相互关系,也就是数据的逻辑结构。
  • 算法和数据结构关系紧密,数据结构是算法设计的基础,设计具体的算法步骤时,考虑的是如何对这些具有数据关系的实际数据进行加工和处理。
基本数据结构类型
  • 线性结构,包括数组、链表、栈、队列;
  • 关联结构,包括集合、映射;
  • 树形结构,适合表达有层次关系的数据;
  • 图形结构,存储数据元素及其复杂的关系,常采用邻接矩阵或者邻接表存储,可以采用广度或者深度优先进行遍历。
基本算法设计思想
  • 贪婪法,将求解过程分成若干步骤,每个步骤都应用贪心原则,选取当前状态地最优选择,并以此希望最后堆叠的结果也是最优的。贪婪法不进行回溯,所以只有在很少的情况下才能得到真正的全局最优解,通常最为其他算法的辅助算法;
  • 分治法,将复杂问题分解为独立的与原问题相同类型的若干子问题来求解,很多情况下,分治法都采用递归实现;
  • 动态规划法,解决多阶段决策的常用思想,将复杂问题按照时间或者问题的演化状态进行子问题的划分;
  • 穷举法,通常指运用一定的穷举策略来在问题的解空间搜索结果,有盲目搜索,启发式搜索和剪枝搜索。
算法的实现方式
  • 顺序执行
  • 循环执行
  • 分支执行
  • 并行执行
  • 递归执行
  • 迭代执行

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值