算法
莫法
向来缘浅,奈何情深
展开
-
算法基础(一)--大O分析法(上)
复杂度分析(上)为什么需要复杂度分析?你可能会有疑惑,我把代码跑一遍,通过统计、监控,就能得到算法执行的时间和占用的内存大小。为什么还要做时间、空间复杂度分析呢?这种分析方法能比我实实在在跑一遍得到的数据更准确吗?首先,可以肯定地说,这种评估算法执行效率地方法是正确地。很多数据结构和算法书籍还给这种方法起了一个名字,叫事后统计法。但是这种统计方法有非常大地局限性:测试结果非常依赖测试...原创 2019-05-07 18:25:16 · 1228 阅读 · 0 评论 -
算法基础(二)--大O分析法(下)
时间复杂度(下)最好、最坏情况时间复杂度同样,我们先看一段代码,你可以尝试先自己分析一下它的时间复杂度://n 表示切片arrary的长度func find(arrary []int,n int,x int) (pos int) { i := 0 pos := -1 for ;i<n;i++ { if arrary[i] == x { ...原创 2019-05-07 18:27:36 · 536 阅读 · 0 评论 -
算法基础(三)--数据结构(数组)
数组大部分编程语言中,数组都是从0开始编号的,但你是否下意识地想过,为什么数组要从0开始编号,而不是从1开始呢? 从1开始不是更符合人类地思维习惯吗?如何实现随机访问什么是数组?我想你心中已经有了答案。不过,我还是想用专业的话来给你做下解释。数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。这个定义里有几个关键词,理解这几个关键词,理解了这几...原创 2019-05-07 18:30:24 · 166 阅读 · 0 评论