一. 简单的直接算法 比较次数:(n-m-1)*m次 时间复杂度O(mn) 二. Rabin-karp算法 算法思想:将字符串转化成数字进行粗比较,筛选后进行细比较 算法设计: (1)直接数值比较 算法思想:字符集与 1-n 的数值满足双射,字符串转化为n进制数值 优化程度:a. 比较次数:n-m次 ...
分类:
编程语言 时间:
2020-06-25 18:00:36
阅读次数:
68
图论算法内容难度较大,且灵活多变,本篇是对前述内容的小结 1. 图论算法设计难点 (1)如何将一个实际问题转化成图上的搜索问题(建模难) (2)如何选择最优的搜索方式,搜索代价的代价函数怎么设计(构造难) 2. 算法一览 (1)图论基本算法(DFS、BFS、最小生成树(prim(贪心)、kruska ...
分类:
编程语言 时间:
2020-06-24 16:36:08
阅读次数:
63
什么是Bitset Bitset,也就是位图,由于可以用非常紧凑的格式来表示给定范围的连续数据而经常出现在各种算法设计上。 基本原理是,用1位来表示一个数据是否出现过,0为没有出现过,1表示出现过。使用的时候既可根据一个是否为0表示此数是否出现过。 1G的空间,有8*1024*1024*1024=8 ...
分类:
编程语言 时间:
2020-06-19 14:24:18
阅读次数:
54
hash 应用: 1. 加密验证 2. 压缩数据 3. 负载均衡 4. 散列处理 hash 原理特点: 主要原理就是把大范围映射到小范围,因此输入范围必须和小范围相当或者比它更小,否则增加冲突。 Hash函数逼近单向函数,所以可以用来对数据进行加密。(单项函数:如果某个函数在给定输入的时候,很容易计 ...
分类:
编程语言 时间:
2020-06-15 17:38:36
阅读次数:
52
零基础我是建议你选择Java 首先,Java是一门编程语言,目前被广泛应用在Web开发、移动互联网开发和大数据开发等领域,而大数据则是一个新的技术体系,不仅涉及到编程,也涉及到其他技术组成部分(算法设计等)。Java语言本身是一种利用计算资源的方式,也可以看成是一种与互联网交流的手段,而大数据的目的 ...
分类:
编程语言 时间:
2020-06-12 14:30:58
阅读次数:
87
当用户u 对商品p 进行了评分,将触发一次对u的推荐结果的更新。对于用户u 来说,他与p 最相似的商品们之间的推荐强度将发生变化,所以选取与商品p 最相似的K 个商品作为候选商品。每个候选商品按照“推荐优先级”这一权重作为衡量这个商品被推荐给用户u 的优先级。 这些商品将根据用户u 最近的若干评分计 ...
分类:
编程语言 时间:
2020-06-03 15:40:00
阅读次数:
100
经过几个月的系统性学习面向对象这门课程,我对于面向对象编程思想有了一定的认识,并具备了一定的面向对象编程能力,能够编写一些简单的面向对象编程设计题,以下是我对于学习面向对象后对于面向对象基本概念的一些感想。 面向对象编程不同于面向过程编程,在需求分析、算法设计上都有很大的不同。面向过程着重于解题步骤 ...
分类:
其他好文 时间:
2020-06-03 13:43:02
阅读次数:
248
题目:在一个大文件中有10G个整数,乱序排列,要求找出中位数(内存有2G限制,不能一次全部加装),请写出算法设计思路。 中位数的定义:对于一个排序好的序列,如果数据有奇数个的话,中位数就取中间的一个;如果有偶数个的话,中位数一般取中间两个数的平均值。 解题: 思路一:堆排序(转换为求前5G大的元素) ...
分类:
其他好文 时间:
2020-05-29 17:33:39
阅读次数:
108
图同构问题 图同构就是从顶点和边的拓扑图结构上来看, 两个图是否有可能以同样的方式画出。从邻接矩阵角度来看, 通过对其中一个邻接矩阵施加一系列的行和列的矩阵初等变换, 能否使两者相等( 即同构)或永远无法相等( 即不同构) 。 不幸的是, 判断两个图是否同构是一件困难的事情。在两个带有 n 个顶点的 ...
分类:
编程语言 时间:
2020-05-17 01:27:40
阅读次数:
79
题目描述: 在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 思路分析:这道题第一次看到类似的题是在算法设计与分析这本书的第三章分治策略,当时书上给的方法是以中位数为基准进行第K小元素的查找,还记得若采取这样的方法,则算法的 ...
分类:
编程语言 时间:
2020-05-17 01:18:26
阅读次数:
105