摘要: 快速排序 -利用分治策略 -在原地排序 -经过调整后很实用 算法分析 最坏情况 1.数据已经排好序或者逆序 2.每个分划的一边都没有元素 此时递归式为:T(n) = T(0) + T(n-1) + θ(n) = T(n-1) + Θ(n) = Θ(n2) 最优情况 最好的情况分划为 n/2 : n/ 阅读全文
posted @ 2018-03-28 19:28 乐高先生 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 乘方问题 输入一个实数x,一个整数n >= 0,计算xn。 朴素算法即时对n个x连乘。 分治法: xn = xn/2 · xn/2 如果n为偶数 xn = x(n-1)/2 · x(n+1)/2 如果n为奇数 T(n) = T(n/2) + θ(1) = θ(lg n) Bottom-up algo 阅读全文
posted @ 2018-03-26 23:36 乐高先生 阅读(231) 评论(0) 推荐(0) 编辑
摘要: Asymptotic analysis(渐近分析) 1. Ignore machine-dependent constants. 2. Look at the growth of the running time. 解递归式的方法: substitution method(代换法) 1. 猜测有某个 阅读全文
posted @ 2018-03-20 22:49 乐高先生 阅读(142) 评论(0) 推荐(0) 编辑
摘要: Series 具有轴标签的一维数组。 标签不需要是唯一的,但必须是可哈希类型。该对象支持基于整型和基于标签索引的索引,并提供一系列用于执行涉及索引的操作方法。 多维数组的统计方法已被覆盖,自动排除缺失的数据。 参数 data:类数组,字典,标量值,包含以Series形式存储的数据 index:类数组 阅读全文
posted @ 2018-03-13 13:39 乐高先生 阅读(131) 评论(0) 推荐(0) 编辑
摘要: Pandas 目前支持三种多轴索引 .loc 主要基于标签,但也可以用于布尔数组。在 .loc 没有找到items时,会产生KeyError。 最基础的索引: 使用 .loc 索引(按标签选择) 使用.iloc索引(按位置选择) 使用.isin()方法进行过滤 阅读全文
posted @ 2018-03-12 20:36 乐高先生 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 一对一函数 函数f(x)在定义域D上是一对一的,若每当a ≠ b时f(a) ≠ f(b) 反函数 由逆转一对一函数的定义域和值域定义的函数就是f的反函数。 反函数的测试 函数f和g是反函数对,当且仅当 f(g(x)) = x 并且 g(f(x)) = x. 阅读全文
posted @ 2018-03-10 09:24 乐高先生 阅读(668) 评论(0) 推荐(0) 编辑
摘要: map() 函数 map()函数会根据提供的函数对指定序列做映射。 map()函数的语法: 阅读全文
posted @ 2018-03-09 19:26 乐高先生 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 霍纳规则用来简化朴素多项式的求值。它将一元n次多项式的求值问题转化为n个一次式。 霍纳规则是采用最少的乘法运算策略,求多项式A(x) = anxn+ an-1xn-1+...+ a1x + a0在x0处的值,该规则是A(x0)=(...((anx0+ an-1)x0+...+ a1)x0+ a0) 阅读全文
posted @ 2018-03-07 20:25 乐高先生 阅读(517) 评论(0) 推荐(0) 编辑
摘要: 问题:请给出一个运行时间为O(n lgn)的算法,使之能在给定一个由n个整数构成的集合S和另一个整数x时, 判断S中是否存在有两个其和等于x的元素。 题目思路:先将集合S用归并排序排好序,因为归并排序的运行时间为O(n lgn);设置low和 high两个标志指向集合的两端,将两个点相加与x比较,如 阅读全文
posted @ 2018-03-07 19:44 乐高先生 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 合并排序算法依照分治模式,直观地操作如下: 分解:将n个元素分成各含n/2个元素的子序列; 解决:用合并排序法对两个子序列递归地排序; 合并:合并两个已排序的子序列以得到排序结果。 以下给出递归形式的T(n)即最坏情况下合并排序n个数的运行时间。当n>1时,将运行时间如下分解: 分解:这一步仅仅是计 阅读全文
posted @ 2018-03-07 18:15 乐高先生 阅读(449) 评论(0) 推荐(0) 编辑