算法篇——算法分析

本文介绍了算法分析中的时间复杂度概念,通过比较不同函数增长率展示了其重要性。接着讨论了最大子序列和问题,提供了四种解法,包括O(n^2)、O(n^2)、O(NlogN)和O(N)复杂度的算法,强调在解决此类问题时应尽量降低复杂度。
摘要由CSDN通过智能技术生成

目录

一些数学定义

时间复杂度

最大子序列和问题


一些数学定义

给定两个函数f和g,

1. 如果有正的常数c和n,使得当N≥n时,f(N) ≤ g(N),那么f(N) = O(g(N))

2. 如果有正的常数c和n,使得当N≥n时,f(N) ≥ g(N),那么f(N) = Ω(g(N))

3. 如果f(N) = O(g(N)),并且f(N) = Ω(g(N)),那么f(N) = Θ(g(N))

以上的定义在函数之间建立了一种级别,增长率高的,级别要高,比如N^{2} = O(N^{3})

对于f=1000xg=x^{2},虽然当x较小时,f较大,但是g的增长率更大,当x≥1000时,f≤g,所以有f = O(g).

我们比较两个函数时,通常忽略系数和较低项,只保留最高项对比,比如f=3x^{5}+4x^{3}+1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值