数据结构/算法的定义

数据结构:

数据对象在计算机中的组织方式

  • 逻辑结构:一对一的结构,线性结构;一对多的结构,树形结构
  • 物理的存储结构:有数组结构和链表结构

数据对象必然与一系列对加在其上的方法相关联

这些方法叫做算法

算法的定义:

  • 有限指令集
  • 算法输入(不是必须)
  • 产生输出
  • 在有限的步骤之后终止
  • 每一条指令有充分明确的目标,不能有歧义;在计算机可以处理的范围之内;其描述不依赖计算机的语言和实现方法。

从两个维度评价一个算法的好坏

  • 空间复杂度S(n):算法在执行时占用的存储单元的长度
  • 时间复杂度T(n):算啊在执行时耗费的时间的长度

递归函数在执行时系统要保存N个函数的状态,空间复杂度为N

关注算法的效率会关注最坏的时间复杂度和平均时间复杂度

example 1

给定N个整数的序列{A0, A2, A3,...AN-1},求任意子序列的最大值。

int maxSubsequence(int *p; int len) {
    int sumValue = 0;
    int maxSum = 0;
    for (int i = 0; i < len; i++) {
        sumValue += p[i];
        if (sumValue > maxSum) {
            maxSum = sumValue;
        } else if (sumValue < 0) {
            sumValue = 0;
        }
    }
    
    return maxSum;
}

上面算法采用的是在线处理的方式,其时间复杂度为N

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值