
基础知识
OI相关基础知识
努力的老周
一个老码农,中年大叔。打过工,做过老板。
现有神兽一枚,努力培养神兽中。
展开
-
什么是算法
定义算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。算法的特征有穷性(Finiteness)算法的有穷性是指算法必须能在执行有限个步骤之后终止; 确切性(Definiteness)算法的每一步骤必须有确切的定义; 输入项(Input)一个算法有 0 个或多个输入,以刻...原创 2020-02-20 17:24:29 · 348 阅读 · 0 评论 -
常见算法复杂度样例
大O表示法用O(n)来体现算法时间复杂度的记法被称作大O表示法。一般我们我们评估一个算法都是直接评估它的最坏的复杂度。推导大O阶推导大O阶有一下三种规则:用常数1取代运行时间中的所有加法常数 只保留最高阶项 去除最高阶的常数常见算法复杂度样例常数阶int sum = 0, n = 10; // 语句执行一次 int sum = (1+n)*n/2; // 语句执行...原创 2020-02-15 15:29:26 · 2134 阅读 · 1 评论 -
OI中2D地图 H 和 W 的含义
算法比赛中,经常会出现 2D 地图,一般的描述如下:H Ws11 s12 ⋯ s1Ws21 s22 ⋯ s2W⋮sH1 sH2 ⋯ sHW我们可以看到有两个关键参数 H 和 W。其中 H 表示水平方向有多少个点,W 表示垂直方向有多少个点。...原创 2020-05-20 10:32:22 · 1027 阅读 · 0 评论 -
大O表示法
什么样的程序才是好的程序?好的程序设计无外乎两点,"快"和"省"。"快"指程序执行速度快,高效,"省"指占用更小的内存空间。这两点其实就对应"时间复杂度"和"空间复杂度"的问题。那么如何分析程序的时间复杂度和空间复杂度?大O表示法。定义"大O表示法"表示程序的执行时间或占用空间随数据规模的增长趋势。算法的时间复杂度通常用大O符号表述,定义为 T[n] = O(f(n))。称函数 T(n...原创 2020-02-20 11:52:03 · 795 阅读 · 1 评论 -
空间复杂度
空间复杂度(Space Complexity)是对一个算法在运行过程中临时占用存储空间大小的量度,记做S(n)=O(f(n))。一个算法在计算机存储器上所占用的存储空间,包括存储算法本身所占用的存储空间,算法的输入输出数据所占用的存储空间和算法在运行过程中临时占用的存储空间这三个方面。算法的输入输出数据所占用的存储空间是由要解决的问题决定的,是通过参数表由调用函数传递而来的,它不随本算法的...原创 2020-02-15 14:53:24 · 1181 阅读 · 0 评论 -
时间复杂度
时间频率一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。时间复杂度在时间频度中,n称为问题的规...原创 2020-02-12 13:37:01 · 3663 阅读 · 1 评论