
算法
zl1zl2zl3
这个作者很懒,什么都没留下…
展开
-
遗传算法的基本概念和实现,附Java实现案例!
本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载作者:MallawaarachchiFollow原文:https://medium.com/towards-data-science/introduction-to-genetic-algorithms-including-example-code-e396e98d8bf3机器之心编译,参与:俞云开、蒋思源基因遗传算法是一种灵感源于达尔文自然进化理论的启发式搜索算法。该算法反映了自然选择的过程,即最适者被选.转载 2020-09-03 10:14:18 · 409 阅读 · 0 评论 -
如何查找两个列表之间的差异?
1. 概述查找相同数据类型的对象集合之间的差异是一项常见的编程任务。举个例子,假设我们有一份申请考试的学生名单和另一份通过考试的学生名单。这两张名单的区别会告诉我们那些没有通过考试的学生。在Java中,ListAPI 中没有显式的方法来查找两个列表之间的差异,尽管有一些helper方法非常接近。在本篇文章中,我们将了解如何找出两个列表之间的差异。我们将尝试几种不同的方法,包括普通的Java(有和没有Streams),以及使用第三方库,如Guava和Apache Commons Collecti.转载 2020-08-24 10:05:12 · 770 阅读 · 0 评论 -
面试:如何从 100 亿 URL 中找出相同的 URL?
题目描述给定 a、b 两个文件,各存放 50 亿个 URL,每个 URL 各占 64B,内存限制是 4G。请找出 a、b 两个文件共同的 URL。“推荐一个艿艿写的 6000+ Star 的 SpringBoot + SpringCloud + Dubbo 教程的仓库:https://github.com/YunaiV/SpringBoot-Labs解答思路每个 URL 占 64B,那么 50 亿个 URL占用的空间大小约为 320GB。“5, 000, 000, 000 * 64转载 2020-08-18 15:42:03 · 802 阅读 · 0 评论 -
面试必问:常用的加密算法有哪些?
加密算法我们整体可以分为:可逆加密和不可逆加密,可逆加密又可以分为:对称加密和非对称加密。一、不可逆加密常见的不可逆加密算法有MD5,HMAC,SHA1、SHA-224、SHA-256、SHA-384,和SHA-512,其中SHA-224、SHA-256、SHA-384,和SHA-512我们可以统称为SHA2加密算法,SHA加密算法的安全性要比MD5更高,而SHA2加密算法比SHA1的要高。其中SHA后面的数字表示的是加密后的字符串长度,SHA1默认会产生一个160位的信息摘要。不可逆加密算.转载 2020-08-14 21:33:53 · 3710 阅读 · 1 评论 -
统计学出身但编程一般,该选择数据分析还是挖掘算法?
来自公众号:木东居士0x00 前言本文的话题来自一名应届生关于毕业后职业发展方向的选择。在职业选择上,数据分析和算法工程师是很多小伙伴都会纠结选择的地方,本文正好对该问题进行了讨论,也希望给更多的小伙伴以参考。0x01 职业困惑问题统计学出身但编程不强的硕士应届生,毕业了该选择数据分析还是挖掘算法路径?问题描述各位前辈们好,我是国内某985的研二学生,还有一年毕业,研究生阶段主要跟导师做数据算法的研究,发过一篇会议论文,还有篇算法相关的毕业论文正在写。明年就毕业了,周围不.转载 2020-07-27 08:54:27 · 867 阅读 · 0 评论 -
“算法复杂度”——其实并没有那么复杂
算法是用于解决特定问题的一系列的执行步骤。使用不同算法,解决同一个问题,效率可能相差非常大。为了对算法的好坏进行评价,我们引入“算法复杂度”的概念。1、引例:斐波那契数列(Fibonacci sequence)已知斐波那契数列:,求它的通项公式。求解斐波那契数列的方法有很多种,这里只介绍两种:递归法和平推法。package com.atangbiji;public class Main { public static void main(String[] arg...转载 2020-07-16 18:55:45 · 202 阅读 · 0 评论 -
面试官:会玩牌吧?给我讲讲洗牌算法和它的应用场景吧!
有一次参加面试,面试官问我:“会玩牌吧?”内心:“咋滴,这是要玩德州扑克(或者炸金花),赢了他就能通过面试么?”结果……没想到面试官的下一句话:“给我讲讲洗牌算法以及它的应用场景吧!”哈哈,以上内容纯属虚构背景这确实也是一道面试题,我曾经多次面试中都有遇到这个题目或者这个题目的变种。你不妨花 1 秒,想想?什么是洗牌算法从名字上来看,就是给你一副牌让你洗呗,用怎样的方法才能洗得均匀呢?请大佬表演一下。不好意思,翻车了其实洗牌算法就是一种随机算法,你...转载 2020-07-11 20:53:26 · 1038 阅读 · 0 评论 -
牛逼哄哄的布隆过滤器,到底有什么用?
作者:CodeBear的园子www.cnblogs.com/CodeBear/p/10911177.html本文是站在小白的角度去讨论布隆过滤器,如果你是科班出身,或者比较聪明,又或者真正想完全搞懂布隆过滤器的可以移步。不知道从什么时候开始,本来默默无闻的布隆过滤器一下子名声大燥,仿佛身在互联网,做着开发的,无人不知,无人不晓,哪怕对技术不是很关心的小伙伴也听过它的名号。我也花了不少时间去研究布隆过滤器,看了不少博客,无奈不是科班出身,又没有那么聪明的头脑,又比较懒...经过“放弃,拿起.转载 2020-06-29 11:19:05 · 289 阅读 · 0 评论 -
今日头条、抖音推荐算法原理全文详解!
本次分享将主要介绍今日头条推荐系统概览以及内容分析、用户标签、评估分析,内容安全等原理。一、系统概览推荐系统,如果用形式化的方式去描述实际上是拟合一个用户对内容满意度的函数,这个函数需要输入三个维度的变量。第一个维度是内容。头条现在已经是一个综合内容平台,图文、视频、UGC小视频、问答、微头条,每种内容有很多自己的特征,需要考虑怎样提取不同内容类型的特征做好推荐。第二个...转载 2020-03-23 11:16:49 · 1973 阅读 · 0 评论 -
面试题热个身:5 亿整数的大文件,来排个序?
一、问题给你1个文件bigdata,大小4663M,5亿个数,文件中的数据随机,如下一行一个整数:现在要对这个文件进行排序,怎么搞?二、内部排序先尝试内排,选2种排序方式:privatefinalint cutoff = 8; public void perform(Comparable[] a) { perform(a,0,a.length -...转载 2020-03-04 21:56:19 · 256 阅读 · 0 评论 -
Java一致性Hash算法的实现
哈希hashhash的意思是散列,目的是将一组输入的数据均匀的分开、打散,往往用来配合路由算法做负载均衡,多用在分布式系统中。比如memcached,它只提供了K V的存储、读取,如果使用了多台memcache做一个“逻辑集群”,就需要客户端做“路由算法”,来保证数据均匀的进去,然后能“原路”拿出来。常规哈希取模常规哈希,往往结合取模运算,以便将请求转发到后端的服务器上,如下图:...转载 2019-12-17 15:57:00 · 222 阅读 · 0 评论 -
Redis 是怎么实现 “附近的人” 的?
针对“附近的人”这一位置服务领域的应用场景,常见的可使用PG、MySQL和MongoDB等多种DB的空间索引进行实现。而Redis另辟蹊径,结合其有序队列zset以及geohash编码,实现了空间搜索功能,且拥有极高的运行效率。本文将从源码角度对其算法原理进行解析,并推算查询时间复杂度。要提供完整的“附近的人”服务,最基本的是要实现“增”、“删”、“查”的功能。以下将分别进行介绍,其...转载 2019-11-25 16:22:37 · 298 阅读 · 0 评论 -
面试问红黑树,我脸都绿了。。
红黑树是一个平衡的二叉树,但不是一个完美的平衡二叉树。虽然我们希望一个所有查找都能在~lgN次比较内结束,但是这样在动态插入中保持树的完美平衡代价太高,所以,我们稍微放松逛一下限制,希望找到一个能在对数时间内完成查找的数据结构。这个时候,红黑树站了出来。阅读以下需要了解普通二叉树的插入以及删除操作。红黑树是在普通二叉树上,对没个节点添加一个颜色属性形成的,同时整个红黑二叉树需要同时满足一下...转载 2019-11-09 14:00:00 · 325 阅读 · 0 评论 -
微信“看一看”的底层算法是什么?
以下文章来源于AI前线,作者刘雨丹AI前线面向AI爱好者、开发者和科学家,提供AI领域技术资讯、一线业界实践案例、搜罗整理业界技术分享干货、AI论文解读。每周一节技术分享公开课,助力你全面拥抱人工智能技术。本文由微信公众号 「AI 前线」原创(ID:ai-front),未经授权不得转载论文作者 | Yudan Liu, Kaikai Ge, Xu Zhang, Leyu...转载 2019-11-01 15:41:52 · 421 阅读 · 0 评论 -
对一致性Hash算法,Java代码实现的深入研究
一致性Hash算法关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法、一致性Hash算法的算法原理做了详细的解读。算法的具体原理这里再次贴上:先构造一个长度为232的整数环(这个环被称为一致性Hash环),根据节点名称的Hash值(其分布为[0, 232-1])将服务器节点放置在这个H...转载 2018-11-10 13:47:11 · 265 阅读 · 0 评论 -
如何有效地做算法题
这篇文章最早发在我团队的文档中。我的团队鼓励每个同学都在业余时间多做算法题,特别是新人。个人认为在编程能力的提升上比做 side project 更有用,对职业发展也是如此。当然出于兴趣做的 side project 另当别论。转到这里,希望对各位读者有用。目的持续做算法题的目的仍然是自身能力提升。可以继续细化成三点: 保持思维敏捷。非常重要,状态好才能保持对编程的热情。 ...转载 2019-05-17 13:45:24 · 456 阅读 · 0 评论 -
凭借这 10 大算法,就可以主宰世界!
来源 | 想象力创造一切文章开始呢,我们需要弄明白“算法”的定义。什么是算法呢?简单的说,任何定义明确的计算步骤都可称为算法,接受一个或一组值为输入,输出一个或一组值。换句话说,算法是用来解决特定问题的一系列步骤(ps:我们在日常生活中也在使用算法)。算法有哪些特性呢?1、有穷性,执行有限步骤后,算法必须中止。2、确切性,算法的每个步骤都必须确切定义。3、可行...转载 2019-06-18 14:10:03 · 251 阅读 · 0 评论 -
如何只用2GB内存从20/40/80亿个整数中找到出现次数最多的数
来源:公众号【苦逼的码农】这几天小秋去面试了,不过最近小秋学习了不少和位算法相关文章,例如:【算法技巧】位运算装逼指南对于算法题还是有点信心的,,,,于是,发现了如下对话。20亿级别面试官:如果我给你 2GB 的内存,并且给你 20 亿个 int 型整数,让你来找出次数出现最多的数,你会怎么做?小秋:(嗯?怎么感觉和之前的那道判断一个数是否出现在这 40 亿个整数中...转载 2019-06-22 18:37:31 · 321 阅读 · 0 评论 -
互联网大厂算法面试题集合,看完我跪了!
来源:https://github.com/azl397985856/leetcode介绍leetcode 题解,记录自己的 leetcode 解题之路。本仓库目前分为五个部分: 第一个部分是 leetcode 经典题目的解析,包括思路,关键点和具体的代码实现。 第二部分是对于数据结构与算法的总结 第三部分是 anki 卡片, 将 leetcode 题...转载 2019-06-30 15:16:00 · 3128 阅读 · 1 评论 -
如何快速判断某 URL 是否在 20 亿的网址 URL 集合中?
假设遇到这样一个问题:一个网站有 20 亿 url 存在一个黑名单中,这个黑名单要怎么存?若此时随便输入一个 url,你如何快速判断该 url 是否在这个黑名单中?并且需在给定内存空间(比如:500M)内快速判断出。可能很多人首先想到的会是使用HashSet,因为HashSet基于HashMap,理论上时间复杂度为:O(1)。达到了快速的目的,但是空间复杂度呢?URL字符串通过Hash得...转载 2019-08-21 09:56:58 · 342 阅读 · 0 评论 -
刷了一个月算法,终于拿到了double的offer
本文采用Java语言来进行描述,帮大家好好梳理一下数据结构与算法,在工作和面试中用的上。亦即总结常见的的数据结构,以及在Java中相应的实现方法,务求理论与实践一步总结到位。常用数据结构数组数组是相同数据类型的元素按一定顺序排列的集合,是一块连续的内存空间。数组的优点是:get和set操作时间上都是O(1)的;缺点是:add和remove操作时间上都是O(N)的。Java中,A...转载 2019-05-04 08:45:51 · 651 阅读 · 0 评论 -
Github标星2w+,热榜第一,如何用Python实现所有算法
大数据文摘出品编译:周素云、蒋宝尚学会了Python基础知识,想进阶一下,那就来点算法吧!毕竟编程语言只是工具,结构算法才是灵魂。新手如何入门Python算法?几位印度小哥在GitHub上建了一个各种Python算法的新手入门大全。从原理到代码,全都给你交代清楚了。为了让新手更加直观的理解,有的部分还配了动图。标星已经达到2.7W给出Github地址☟https:...转载 2019-05-04 08:45:03 · 2231 阅读 · 1 评论 -
10张Gif动图让你弄懂递归等概念
图像(包括动图)是传递信息的一种高效方式,往往能增强表象、记忆与思维等方面的反应强度。所谓一图胜千言,说的就是这个道理。今天为大家整理了十张动图GIFS,有助于认识循环、递归、二分检索等概念的具体运行情况。一、循环GIF 1:最简单的 while 循环GIF 2:带 if/else 的循环二、递归GIF 3:递归概念的直接演示GIF 4:递归的代码示例...转载 2018-12-02 13:54:55 · 413 阅读 · 0 评论 -
如何实现可以获取最小值的栈?
小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT。今天他又去BAT中的一家面试了。简单的自我介绍后,面试官给了小史一个问题。 面试现场题目:我现在需要实现一个栈,这个栈除了可以进行普通的push、pop操作以外,还可以进行getMin的操作,getMin方法被调用后,会返回当前栈的最小值,你会怎么做呢?你可以假设栈里面存...转载 2018-11-29 11:05:42 · 422 阅读 · 0 评论 -
买什么数据结构与算法,这里有:动态图解十大经典排序算法(含JAVA代码实现)
上篇的动图数据结构反响不错,这次来个动图排序算法大全。数据结构与算法,齐了。几张动态图捋清Java常用数据结构及其设计原理本文将采取动态图+文字描述+正确的java代码实现来讲解以下十大排序算法:冒泡排序 选择排序 插入排序 希尔排序 归并排序 快速排序 堆排序 计数排序 桶排序 基数排序 0、排序算法说明0.1 排序的定义对一序列对象根据某个关...转载 2018-11-25 10:51:07 · 519 阅读 · 0 评论 -
应用限流
前言在一个高并发系统中对流量的把控是非常重要的,当巨大的流量直接请求到我们的服务器上没多久就可能造成接口不可用,不处理的话甚至会造成整个应用不可用。比如最近就有个这样的需求,我作为客户端要向 kafka生产数据,而 kafka的消费者则再源源不断的消费数据,并将消费的数据全部请求到 web服务器,虽说做了负载(有4台 web服务器)但业务数据的量也是巨大的,每秒钟可能有上万条数据产生。...转载 2018-11-14 08:48:02 · 560 阅读 · 0 评论 -
深入理解CAS算法原理
1、什么是CAS?CAS:Compare and Swap,即比较再交换。jdk5增加了并发包java.util.concurrent.*,其下面的类使用CAS算法实现了区别于synchronouse同步锁的一种乐观锁。JDK 5之前Java语言是靠synchronized关键字保证同步的,这是一种独占锁,也是是悲观锁。 2、CAS算法理解对CAS的理解,CAS是一种无锁算法,...转载 2018-11-05 10:30:17 · 1928 阅读 · 0 评论 -
偏导数与全导数的关系 以及 偏微分与全微分的关系
1.偏导数代数意义 偏导数是对一个变量求导,另一个变量当做数对x求偏导的话y就看作一个数,描述的是x方向上的变化率对y求偏导的话x就看作一个数,描述的是y方向上的变化率几何意义对x求偏导是曲面z=f(x,y)在x方向上的切线对y求偏导是曲面z=f(x,y)在x方向上的切线这里在补充点.就是因为偏导数只能描述x方向或y方向上的变化情况,但是我们要了解各个方向上的情况,所以后面有方...转载 2018-11-01 09:35:58 · 26238 阅读 · 2 评论 -
哈希碰撞与生日攻击
一、哈希碰撞是什么?所谓哈希(hash),就是将不同的输入映射成独一无二的、固定长度的值(又称"哈希值")。它是最常见的软件运算之一。如果不同的输入得到了同一个哈希值,就发生了"哈希碰撞"(collision)。举例来说,很多网络服务会使用哈希函数,产生一个 token,标识用户的身份和权限。AFGG2piXh0ht6dmXUxqv4nA1PU120r0yMAQhuc13...转载 2018-10-30 08:13:37 · 3498 阅读 · 0 评论 -
一致 Hash 算法
当我们在做数据库分库分表或者是分布式缓存时,不可避免的都会遇到一个问题:如何将数据均匀的分散到各个节点中,并且尽量的在加减节点时能使受影响的数据最少。Hash 取模随机放置就不说了,会带来很多问题。通常最容易想到的方案就是 hash 取模了。可以将传入的 Key 按照 index = hash(key) % N 这样来计算出需要存放的节点。其中 hash 函数是一个将字符串转换为正...转载 2018-09-06 14:07:13 · 304 阅读 · 0 评论 -
浅谈常见的七种加密算法及实现(附代码)
1. 前言数字签名、信息加密 是前后端开发都经常需要使用到的技术,应用场景包括了用户登入、交易、信息通讯、oauth 等等,不同的应用场景也会需要使用到不同的签名加密算法,或者需要搭配不一样的 签名加密算法来达到业务目标。这里简单的给大家介绍几种常见的签名加密算法和一些典型场景下的应用。 2. 正文2.1 数字签名数字签名,简单来说就是通过提供 可鉴别 的 数字信息 验证 自身...转载 2018-12-28 22:01:23 · 26955 阅读 · 3 评论 -
算法学习笔记
算法虐我千百遍,我待算法如初恋这里的内容是我学习算法过程的一些记录,希望能一直坚持下去。学习方法 把所有经典算法写一遍 看算法有关源码 加入算法学习社区,相互鼓励学习 看经典书籍 刷题 基本数据结构和算法这些算法全部自己敲一遍:链表 链表 双向链表 哈希表/散列表 (Hash Table) 散列函数 ...转载 2018-12-19 09:35:13 · 248 阅读 · 0 评论 -
一文盘点5种聚类算法,数据科学家必备!
聚类是一种将数据点按一定规则分群的机器学习技术。给定一组数据点,我们可以使用聚类算法将每个数据点分类到一个特定的簇中。理论上,属于同一类的数据点应具有相似的属性或特征,而不同类中的数据点应具有差异很大的属性或特征。聚类属于无监督学习中的一种方法,也是一种在许多领域中用于统计数据分析的常用技术。一、K-均值聚类K-Means可能是最知名的聚类算法,没有之一。并且该算法的代码很容易...转载 2019-01-02 10:37:28 · 2026 阅读 · 0 评论 -
拜托,面试别再问我表达式求值了!!!
上周面试一个候选人,问了一个数据结构与算法的问题,表达式求值。题目大概是这样的:输入长度为n的字符串,例如:1+2+3*4*5输出表达式的值,即:63我暗示的问:应该用什么数据结构?候选人回答:栈。画外音:算是答对。问:时间复杂度呢?回答:O(n^2)画外音:额,应该不需要两个for循环吧。我接着提示:应该先计算哪一步?候选人回答:先计算3*4。画外...转载 2019-04-14 11:03:32 · 203 阅读 · 0 评论 -
你真的会写二分查找吗?
来源:cnblogs.com/luoxn28/p/5767571.html1、二分查找二分查找是一个基础的算法,也是面试中常考的一个知识点。二分查找就是将查找的键和子数组的中间键作比较,如果被查找的键小于中间键,就在左子数组继续查找;如果大于中间键,就在右子数组中查找,否则中间键就是要找的元素。/***二分查找,找到该值在数组中的下标,否则为-1*/stati...转载 2019-04-22 09:48:15 · 229 阅读 · 0 评论 -
不懂算法,还想进大厂?做梦吧
题目有点标题党了,还请大家见谅。下面切入正题。算法很重要,但算法也是学起来最难,最令人生畏的。这篇就来说说算法刷题方面的一些经验和技巧。大家在刷题的时候不知道有没有遇到以下情况。拿到题目后就开始想着怎么写代码,结果写了大半天,发现越写越乱,最后就写不下去了,又或者是,看到题目后,一脸懵逼,完全不知道怎么下手。其实,学算法,刷题蛮干是不行的,需要遵循科学的方法。以下的经验...转载 2019-04-10 16:01:50 · 677 阅读 · 1 评论 -
如何向5岁小孩解释什么是支持向量机(SVM)?
今天来讲解下入门级别的分类方法。什么是SVM?关于什么是SVM这个事情,就必须要说一说刘强西救爱人的故事:在很久以前的情人节,魔鬼抢走了刘强西的爱人,旅馆老板刘强西便发誓要救他的爱人。来到魔鬼的城堡前,魔鬼和他玩了一个游戏,只要他通过了就放走他的爱人。魔鬼在桌子上似乎有规律放了两种颜色的球,说:“你用一根棍子分开它们?要求:即便再放更多球之后,仍然能将它们分开。”于...转载 2019-03-08 15:49:00 · 431 阅读 · 0 评论 -
算法与面试之-如何准备算法面试
主要介绍算法面试的一些问题、以及如何准备算法面试算法面试不仅仅是正确的回答问题对于面试中遇到的大多数问题,都能有一个合理的思考路径什么是算法面试? 让大家在面对面试中的算法问题时,有一个合理的思考路径: 不代表能够“正确”回答每一个算法问题,但是合理的思考方向其实更重要,也是正确完成算法面试问题的前提 算法面试优秀不意味着技术面试优秀 技术面...转载 2019-02-25 20:24:29 · 1146 阅读 · 0 评论 -
一文搞懂负载均衡中的一致性哈希算法
一致性哈希算法在很多领域有应用,例如分布式缓存领域的 MemCache,Redis,负载均衡领域的 Nginx,各类 RPC 框架。不同领域场景不同,需要顾及的因素也有所差异,本文主要讨论在负载均衡中一致性哈希算法的设计。在介绍一致性哈希算法之前,我将会介绍一些哈希算法,讨论它们的区别和使用场景。也会给出一致性哈希算法的 Java 通用实现,可以直接引用,文末会给出 github 地址。...转载 2019-02-28 10:04:30 · 2643 阅读 · 1 评论 -
周围的餐馆有哪些?GeoHash算法
来源:http://t.cn/EbMSD2Ageohash-feature当今年代,每个人都有智能手机,出门在外,自然离不开使用手机地图了,查找附近的餐馆,附近的地铁站,非常方便,可是在这项技术背后又隐藏着什么算法呢?这篇博客将会讲述这个技术背后的GeoHash算法以及基本的实现。首先既然算法名字叫做GeoHash了那么对单词比较敏感的人可能已经猜出来了,差不多就是对当前的位置生成一个...转载 2019-01-06 17:28:14 · 24617 阅读 · 4 评论