
arithmetic
文章平均质量分 89
算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或
赵广陆
优快云认证博客专家、优快云的Java领域优质创作者、全网30w+粉丝、超300w访问量、专注于大学生项目实战开发、讲解和答疑辅导、以及产品测评宣传、工具推广等合作。同时招收学生代理、校园代理,对于专业性数据证明一切!
展开
-
常见排序查找算法
目录1 数组打乱顺序2 判断整数是不是2的阶次方3、判断日期4、面向对象思想实现篮子物品交换5 二分查找6 冒泡排序算法7 插入排序算法8 快速排序算法9 希尔排序算法10 归并排序算法11 桶排序算法12 基数排序算法13 剪枝算法14 回溯算法15 最短路径算法16 最小生成树算法1 数组打乱顺序数据里有{1,2,3,4,5,6,7,8,9},请随机打乱顺序,生成一个新的数组(请以代码实现) import java.util.Arrays; //打乱数组 public原创 2022-02-10 22:00:00 · 515 阅读 · 0 评论 -
常见数据结构
目录1 栈(stack)2 队列(queue)3 链表(Link)4 散列表(Hash Table)5 排序二叉树6 前缀树7 红黑树8 B-TREE9 位图1 栈(stack)栈( stack)是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫做栈顶(top)。它是后进先出(LIFO)的。对栈的基本操作只有 push(进栈)和 pop(出栈)两种,前者相当于插入,后者相当于删除最后的元素。2 队列(queue)队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行原创 2022-02-10 21:30:00 · 985 阅读 · 0 评论 -
最优商品topk排名算法
目录1 产生背景2 解决方案2.1 方案一:全局排序2.2 方案二:局部排序2.3 方案三:最小堆3 实现4 结果分析1 产生背景topk是一个典型的业务场景,除了最优商品,包括推荐排名、积分排名所有涉及到排名前k的地方都是该算法的应用场合。topk即得到一个集合后,筛选里面排名前k个数值。问题看似简单,但是里面的数据结构和算法体现着对解决方案性能的思索和深度挖掘。到底有几种方法,这些方案里蕴含的优化思路究竟是怎么样的?这节来讨论2 解决方案2.1 方案一:全局排序全局排序,将集合整体排序后,原创 2022-01-28 21:15:00 · 1143 阅读 · 0 评论 -
一致性hash算法深入探究
目录1产生背景2 原理探究3 特性4 优化hash算法5 实现6 验证结果1产生背景负载均衡策略中,我们提到过源地址hash算法,让某些请求固定的落在对应的服务器上。这样可以解决会话信息保留的问题。同时,标准的hash,如果机器节点数发生变更。那么请求会被重新hash,打破了原始的设计初衷,怎么解决呢?一致性hash上场。2 原理探究以4台机器为例,一致性hash的算法如下:首先求出各个服务器的哈希值,并将其配置到0~2 32 的圆上然后采用同样的方法求出存储数据的键的哈希值,也映射圆上原创 2022-01-28 21:00:00 · 341 阅读 · 0 评论 -
挖掘框架常用负载均衡算法实现
目录1 负载均衡算法2 轮询(RoundRobin)2.1 概述2.2 实现2.3 结果分析2.4 优缺点3 随机(Random)3.1 概述3.2 实现3.3 结果分析4 源地址哈希(Hash)4.1 概述4.2 实现4.3 结果分析5 加权轮询(WRR)5.1 概述5.2 实现6 加权随机(WR)6.1 概述6.2 实现6.3 结果分析7 最小连接数(LC)7.1 概述7.2 实现7.3 结果分析8 应用案例8.1 nginx upstream8.2 springcloud ribbon IRule8.原创 2022-01-28 20:15:00 · 777 阅读 · 0 评论 -
Java线程常用定时任务算法与应用
目录1 最小堆1.1 概述1.2 案例1.3 源码分析1.4 应用2 时间轮2.1 概述2.2 java实现2.3 结果分析1 最小堆系统或者项目中难免会遇到各种需要自动去执行的任务,实现这些任务的手段也多种多样,如操作系统的crontab,spring框架的quartz,java的Timer和ScheduledThreadPool都是定时任务中的典型手段。1.1 概述Timer是java中最典型的基于优先级队列+最小堆实现的定时器,内部维护一个存放定时任务的优先级队列,该优先级队列使用了最小堆排原创 2022-01-27 21:00:00 · 764 阅读 · 0 评论 -
Java线程常用调度算法与应用
目录1 调度算法应用2 先来先服务(FCFS)2.1 概念2.2 实现2.4 优缺点3 短作业优先 (SJF)3.1 概念3.2 实现3.3 结果分析3.4 优缺点4 时间片轮转(RR)4.1 概念4.2 实现4.3 结果分析4.4 优缺点5 优先级调度(HPF)5.1 概述5.2 实现1 调度算法应用调度算法常见于操作系统中,因为系统资源有限,当有多个进程(或多个进程发出的请求)要使用这些资源时,就必须按照一定的原则选择进程(请求)来占用资源。这就是所谓的调度。在现实生活中也是一样,比如会议室的占用原创 2022-01-27 20:15:00 · 1453 阅读 · 0 评论 -
Java高并发系统限流算法的应用
目录1 概述2 计数器限流2.1 概述2.2 实现2.3 结果分析2.4 优缺点2.5 应用3 漏桶算法3.1 概述3.2 实现3.3 结果分析3.4 优缺点4 令牌桶算法4.1 概述4.2 实现4.3 结果分析4.4 应用5 滑动窗口5.1 概述5.2 实现5.3 结果分析5.4 应用1 概述在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。限流可以认为服务降级的一种,限流是对系统的一种保护措施。即限制流量请求的频率(每秒处理多少个请求)。一般来说,当请求流量超过系统的瓶颈,则丢弃掉多余的原创 2022-01-25 20:45:00 · 2505 阅读 · 1 评论 -
缓存系统失效算法与应用
目录1 先来先淘汰(FIFO)1.1 概述1.2 实现1.3 结果分析1.4 优缺点2 最久未用淘汰(LRU)2.1 概述2.2 实现2.3 结果分析3 最近最少使用(LFU)3.1 概述3.2 实现3.3 结果分析4 应用案例1 先来先淘汰(FIFO)失效算法常见于缓存系统中。因为缓存往往占据大量内存,而内存空间是相对昂贵,且空间有限的,那么针对一部分值,就要依据相应的算法进行失效或移除操作。1.1 概述First In First Out,先来先淘汰。这种算法在每一次新数据插入时,如果队列已满原创 2022-01-25 20:15:00 · 708 阅读 · 0 评论 -
数据结构与算法概论
目录1 数据结构与算法概述1.1 数据结构1.1.1 概述1.1.2 划分1.1.3 程序中常见的数据结构1.2 算法2 复杂度2.1 时间复杂度2.2 空间复杂度2.3 类比3 算法思想3.1 分而治之3.2 动态规划3.3 贪心算法3.4 回溯算法3.5 分支限界4 总结1 数据结构与算法概述1.1 数据结构1.1.1 概述数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。1.1.2原创 2022-01-24 20:00:00 · 696 阅读 · 0 评论