标签:排序算法

JAVA

从头到尾解析Hash表算法,百度Top K算法详解

herman 1年前 (2023-02-19) 1859浏览

从头到尾解析Hash 表算法 本文分为三部分内容,第一部分为一道百度面试题Top K算法的详解;第二部分为关于Hash表算法的详细阐述;第三部分为打造一个最快的Hash表算法。 第一部分:Top K 算法详解 问题描述 百度...

业余杂谈

Java版协同过滤算法终极实现与解释!

herman 2年前 (2022-02-17) 2089浏览

之前有一个智能音乐推荐系统,用到了协同过滤算法!今天通过 demo 代码,大致的给大家解释一下原理和Java实现。下面直接贴代码: /** * 此方法使用协同过滤算法,大概意思就是从数据库拿到所有的用户收藏和当前的用户收藏作为比对,找出和...

JAVA

Java中的记忆(Memoization)算法

herman 4年前 (2020-04-19) 2970浏览

Memoization 被很多人翻译成记忆,是根据字面意思来翻译的。今天我就来说一说记忆化算法。 它其实是一种很巧妙的思想或设计,被称为算法,我想主要是因为它经常会和一些算法进行搭配使用吧。 Memoization 应该有很大的使用场景...

业余杂谈

漫画算法:骚操作系列(灯泡开关的经典面试题)

herman 4年前 (2020-02-29) 3013浏览

今天为大家分享一道关于“电灯泡”的题目。 话不多说,直接看题。 初始时有 n 个灯泡关闭。第 1 轮,你打开所有的灯泡。第 2 轮,每两个灯泡关闭一次。第 3 轮,每三个灯泡切换一次开关(如果关闭则开启,如果开启则关闭)。第 i 轮,每...

业余杂谈

什么是链表?

herman 4年前 (2020-02-17) 1685浏览

在了解完什么是数据结构之后,让我们一起来探索下数据结构中常见的一种—链表。 链表 链表是数据结构之一,其中的数据呈线性排列。在链表中,数据的添加和删除都较为方便,就是访问比较耗费时间。 指针 如上图所示就是链表的概念图,Bl...

业余杂谈

什么是数据结构?

herman 4年前 (2020-02-17) 5336浏览

本篇文章主要来介绍什么是数据结构。 首先让我们来看一张图片: 数据结构 数据存储于计算机的内存中。内存如上图所示,形似排成 1 列的箱子,1 个箱子里存储 1 个数据。 数据存储于内存时,决定了数据顺序和位置关系的便是数据结...

业余杂谈

简单百行Java代码解世界最难九宫格

herman 4年前 (2020-02-04) 1975浏览

世界最难九宫格到底有多难?据说,很多数学家都搞不定!真的是这样吗?今天我们一起来使用 Java 搞定它。 芬兰数学家因卡拉花费 3 个月设计出了世界上迄今难度最大的数独游戏,而且它只有一个答案。因卡拉说只有思考能力最快、头脑最聪明的人才能破解...

JAVA

排序算法之桶排序

herman 4年前 (2020-01-14) 1537浏览

桶排序(Bucket sort)也有人叫做所谓的箱排序。听过的人可能不多,名气不大,但它却是 10 大排序算法中的一部分,足见得它的重要性。今天我们一起来聊聊它。 桶排序的工作原理是将数组分到有限数量的桶里。每个桶再个别排序(有可能再使用别的...

JAVA

排序算法之插入排序

herman 4年前 (2020-01-14) 1228浏览

插入排序是一种最容易理解的排序,我给搓麻将和打牌的大妈都能讲明白。因为,它和打牌一样,每当接到一张牌,我们都选择性的插入到手中已有序的牌中。 插入排序往往会和冒泡排序拿来相比之下,主要原因是,插入排序比冒泡排序更受欢迎!比如,我们把执行一个赋...

JAVA

排序算法之冒泡排序

herman 4年前 (2020-01-13) 1285浏览

最近在阅读 Redis 和 MySQL 底层源码时,发现算法真的很重要。于是,就想先把简单的排序算法再摸一遍,最后整理成一个专栏,方便广大网友查阅! 排序算法(英语:Sorting algorithm)是一种能将一串数据依照特定排序方式进行排...

JAVA

从根上理解order by limit分页数据重复问题

herman 4年前 (2020-01-11) 2040浏览

这个问题相信不少人都遇到过,但很少有人追根溯源。今天我抽出一点时间,来讨论讨论 order by + limit 在什么情况下会出现分页数据重复。 昨天在“CTO”群提问了之后,不少大神都回答的相当正确。我这里结合一下他们的回答,并补充一些内...

JAVA

吐槽一下 Java 8 Lambda 表达式的优缺点

herman 4年前 (2019-12-12) 5096浏览

使用 Java 8 有很长的一段时间了,对它的 Lambda 表达式爱不释手,但是最近发现它的缺点也不少! 原本项目跑的是很顺利的,直到有一天改了某个需求,随手把这个任务分给了其他新同事,谁知新同事看不懂 Lambda,源码阅读起来太困难了!...

SQL

图解B+树的插入过程

herman 5年前 (2019-07-10) 4713浏览

B+ 树在现代数据库中很常见,如果我们了解它,在工作中可能对性能优化会有更好的帮助! 最近我一直在思考 B+ 树的高度是由什么决定的。知道我了解了 B+ 树的插入过程,才有一种恍然大悟的感觉! 网上的一些资料杂乱无章,不同的数据库可能还...