快速排序可以说是最重要的排序,其中延伸的思想和技巧非常值得我们学习。 快速排序也使用了分治的思想,原理如下: 分解:数组A[p..r]被划分为两个(可能为空)子数组A[p..q-1]和A[q+1..r],使得A[p..q-1]中的每一个元素都小于等于A[q],而A[q]也小于等于A[q+1..r]中 ...
分类:
编程语言 时间:
2020-01-14 20:22:56
阅读次数:
96
题意:给你一串只含小写字母字符串,和几个可用字母,求用所给字母能表示所给字符串中的子串数量。 思路:题中已给出(n个字符的)子串和该子串能分解出多少子串的数量关系:n*(n+1)/2。所以找出每一段子串,求该段子串能分成多少子子串,求出数量之和即可。 特别注意要用long long int,否则会超 ...
分类:
其他好文 时间:
2020-01-13 21:52:36
阅读次数:
74
Numpy [TOC] 1.基本操作 1.1数组转换 创建数组的最简单的方法就是使用array函数,将Python下的list转换为ndarray 创建二维数组 重新定义矩阵的形状 array.reshape((n,m)) 1.2数组生成 除了通过数组转换而来之外,我们可以利用np中的一些内置函数来 ...
分类:
其他好文 时间:
2020-01-13 19:40:28
阅读次数:
112
一、函数式编程概念简介 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。函数就是面向过程的程序设计的基本单元 就是越低级的语言,越贴近计算机,抽象程度低,执行效率高,比如C语言;越高级的 ...
分类:
其他好文 时间:
2020-01-13 18:19:55
阅读次数:
96
B/S模式:browser/server,采用的是浏览器/服务器模式。C/S模式:client/server,采用的是客户端/服务器模式。 C/S模式主要由 客户端应用程序(Client)、服务器管理程序(Server)和中间件(middleware) 三个部件组成。 客户应用程序是系统中用户与数据 ...
分类:
Web程序 时间:
2020-01-12 15:20:42
阅读次数:
423
spark的RDD操作 在上一节Spark经典的单词统计中,了解了几个RDD操作,包括flatMap,map,reduceByKey,以及后面简化的方案,countByValue。那么这一节将介绍更多常用的RDD操作,并且为每一种RDD我们分解来看其运作的情况。 spark的flatMap flat ...
分类:
其他好文 时间:
2020-01-12 10:08:52
阅读次数:
87
1. 矩阵分解可以用来解决什么方法, 以及how? 利用矩阵分解来解决实际问题的分析方法很多,如PCA(主成分分析)、ICA(独立成分分析)、SVD(奇异值分解)、VQ(矢量量化)等。在所有这些方法中,原始的大矩阵V被近似分解为低秩的V=WH形式。这些方法的共同特点是,因子W和H中的元素可为正或负, ...
分类:
其他好文 时间:
2020-01-10 22:12:43
阅读次数:
95
1. 直推式的PCA 基本步骤: 对样本数据进行中心化处理(这步操作比较重要,特别是对推导公式) 求样本的协方差矩阵; 对样本的协方差矩阵进行特征值分解,并通过前k个特征值对应的特征向量进行映射: PCA的优化目标是: X = D + N,即低秩矩阵D和独立同分布的Gaussian噪声; 1 def ...
分类:
编程语言 时间:
2020-01-10 22:12:25
阅读次数:
95
实例:体育竞技分析 计算思维:抽象+自动化 模拟:抽象比赛过程+自动化执行n场比赛 当N越大时,比赛结果分析会越科学 解决复杂问题的有效方法: (自定向下设计)将一个总问题表达为若干个小问题组成的形式,使用同样方法进一步分解小问题,直至小问题可以用计算机简单明了的解决。分而治之 (自顶向上执行)分单 ...
分类:
编程语言 时间:
2020-01-10 20:45:24
阅读次数:
122
一、稠密矩阵分解 方法有PartialPivLU、FullPivLU、HouseholderQR、ColPivHouseholderQR、FullPivHouseholderQR、CompleteOrthogonalDecomposition、LLT、LDLT、BDCSVD、JacobiSVD、 以 ...
分类:
其他好文 时间:
2020-01-10 15:36:01
阅读次数:
83