算法与数据结构入门

算法与数据结构入门

  • 抽象:归结一类数据的最本质的东西
  • 抽象数据类型:一个数学模型以及定义在此模型上的一组操作。
引用参数以&打头,可以返回操作值。

渐近时间复杂度
算法执行次数最多的语句,分析其渐近时间复杂度
时间复杂度是由嵌套最深层语句的频度决定的

n越大,算法的执行时间越长。

  • 排序:n为记录数
  • 矩阵:n为矩阵的阶数
  • 多项式:n为多项式的项数
  • 集合:n为元素个数
  • 树:n为树的结点个数
  • 图:n为图的顶点数或边数

分析算法时间复杂度的基本方法

  • 找出语句频度最大的那条语句作为基本语句
  • 计算基本语句的频度得到问题规模n的某个函数f(n)。
  • 取其数量级用符号“O”表示
    eg:计算下列时间复杂度:
    在这里插入图片描述
    eg2:
    在这里插入图片描述
    算法时间复杂度考虑:
  • 最坏时间复杂度(通常)
  • 平均时间复杂度
  • 最好时间复杂度

复杂度分析

O(1)>O(log2n)>O(n)>O(nlog2n)>O(n2)>O(n3)>…>O(nK)>O(2n)

算法的空间复杂度

定义:算法所需存储空间的度量
S(n)=O(f(n))
算法要占据的空间

  • 算法本身要占据的空间,输入/输出,指令,常数,变量等
  • 算法要使用的辅助空间
    eg1:
    在这里插入图片描述
    eg2:
    在这里插入图片描述
    S(n)=O(1),原地工作
    S(n)=O(n)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
作为一个程序员,算法数据结构是你必须掌握的基本知识之一。它们是解决问题和优化代码性能的关键工具。 算法是一系列定义良好的步骤,用于解决特定问题或执行特定任务。它们可以是数学公式、逻辑推理或一系列编程指令。算法有助于解决各种问题,例如查找、排序、图形处理等。 数据结构是组织和存储数据的方式。它们可以是简单的变量、数组、链表、栈、队列、树或图等。选择合适的数据结构可以显著提高算法的效率和性能。 入门算法数据结构,你可以从以下几个方面开始学习: 1. 掌握基本的数据结构:了解数组、链表、栈和队列等基本数据结构的概念、特点及其操作。 2. 学习常见的算法:了解常见的排序算法(如冒泡排序、插入排序、快速排序)、查找算法(如线性查找、二分查找)以及递归算法等。 3. 理解复杂度分析:学习如何分析算法的时间复杂度和空间复杂度,了解如何评估算法的效率和性能。 4. 解决实际问题:通过练习和实践,尝试用算法数据结构解决一些实际的编程问题,例如字符串处理、图形处理等。 除了自学,你可以参考一些经典的教材和在线教程来加深理解。一些推荐的资源包括《算法导论》、《数据结构算法分析》、LeetCode等在线平台。 记住,算法数据结构是一个长期学习的过程,不仅需要理解概念,还需要实践和不断地思考如何应用它们解决实际问题。祝你在算法数据结构的学习中取得好成果!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值