首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
算法与数据结构
秃了也弱了
创建于2023-11-02
订阅专栏
算法与数据结构
等 1 人订阅
共39篇文章
创建于2023-11-02
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Java定时算法实现与应用(最小堆、时间轮)-CSDN博客
系统或者项目中难免会遇到各种需要自动去执行的任务,实现这些任务的手段也多种多样,如操作系统的crontab,spring框架的quartz,java的Timer和ScheduledThreadPool都是定时任务中的典型手段。Timer是java中最典型的基于优先级队列+最小堆实...
【精选】数据结构-树和森林详解(类C语言版)
森林:是m(m≥0)棵互不相交的树的集合。 树(Tree)是n(n≥0)个结点的有限集。若n = 0,则称为空树。 若n > 0,(1)有且仅有一个特点的根(Root)的结点; (2)其余结点可分为m(m≥0)个互不相交的有限集T1, T2, T3, …, Tm。实现:定义数组结...
【精选】排序算法-插入排序详解-CSDN博客
希尔排序(Donald.L.每步将一个待排序的对象,按其关键码大小,插入到前面已经排好序的一组对象的适当位置上,直到对象全部插入位置。即边插入边排序,保证子序列中随时都是排好序的。在有序序列中插入一个元素,保持序列有序,有序长度不断增加。起初,a[0]是长度为1的子序列。然后,逐...
【精选】数据结构-遍历二叉树、线索二叉树(类C语言版)
由二叉树的递归定义可知,遍历左子树和遍历右子树可如同遍历二叉树一样“递归”进行。若二叉树中各节点的值均不相同,则二叉树结点的先序序列、中序序列和后序列都是唯一的。 由二叉树的先序序列和中序序列,或由二叉树的后序序列和中序序列可以确定唯一一棵二叉树。先序:A B C D E F G...
数据结构-广义表详解(类C语言版)
广义表通常记作:LS = (a1, a2, ...其中:LS为表名,n为表的长度,每一个ai为表的元素。习惯上,一般用大写字母表示广义表,小写字母表示原子。若LS非空(n≥1),则其第一个元素a1就是表头。记作head(LS) = a1。注:表头可以是原子,也可以是子表。除表头之...
设计原则之【迪米特法则】,非礼勿近
迪米特原则(Law of Demeter LoD)是指一个对象应该对其他对象保持最少的了解,又叫最少知道原则(Least Knowledge Principle,LKP),尽量降低类与类之间的耦合。迪米特原则主要强调只和朋友交流,不和陌生人说话。出现在成员变量、方法的输入、输出参...
排序算法-选择排序
选择排序的基本思想是:每一趟从待排序的记录中选出关键字最小的记录,按顺序放在已排序的记录序列的最后,直到全部排完为止。简单选择排序 (SimpleSelection Sort)也称作直接选择排序。① 设待排序的记录存放在数组r[1 … n]中。第一趟从r[1]开始,通过n-1次比...
【精选】重新认识面向对象——Java写了五年,你真的弄明白什么是面向对象了吗?不,你一直都是在面向过程编程
“面向过程”(Procedure Oriented,简称PO)是一种以过程为中心的编程思想。其原理就是将问题分解成一个一个详细的步骤,然后通过函数实现每一个步骤,并依次调用。面向过程,其实核心就是“过程”两个字。面向过程编程是一种编程范式或编程风格。它以过程(可以理解为方法、函数...
如何计算算法的时间复杂度、空间复杂度
1.找出语句频度最大的那条语句作为基本语句。2.计算基本语句的频度得到问题规模n的某个函数f(n)。3.取其数量级用符号“O”表示。若循环执行x次:i=2*2*...请注意:有的情况下,算法中基本操作重复执行的次数还随问题的输入、数据集不同而不同。例如,顺序查找,在数组a[i]中...
设计原则之【接口隔离原则】,我只做我能做的事-CSDN博客
接口隔离原则(Interface Segregation Principle, ISP)是指用多个专门的接口,而不使用单一的总接口,客户端不应该依赖它不需要的接口。这个原则指导我们在设计接口时应当注意一下几点: 1、一个类对一类的依赖应该建立在最小的接口之上。 2、建立单一接口,...
Java限流算法实现与应用(计数器、漏桶、令牌桶、滑动窗口)
限流是对系统的一种保护措施。即限制流量请求的频率(每秒处理多少个请求)。一般来说,当请求流量超过系统的瓶颈,则丢弃掉多余的请求流量,保证系统的可用性。即要么不放进来,放进来的就保证提供服务。计数器采用简单的计数操作,到一段时间节点后自动清零。ScheduledExecutorSe...
UML类图使用介绍
统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML使用面向对象设计的建模工具,但独立于任何具体程序设计语言。它的特点是简单、统一、图形化、能表达软件设...
Java调度算法实现与应用(FCFS、SJF、RR、HPF)
调度算法常见于操作系统中,因为系统资源有限,当有多个进程(或多个进程发出的请求)要使用这些资源时,就必须按照一定的原则选择进程(请求)来占用资源。这就是所谓的调度。在现实生活中也是一样,比如会议室的占用。先来先服务,很好理解,就是按照服务提交申请的顺序,依次执行。讲究先来后到。定...
什么是继承?什么是组合?为何说要多用组合少用继承?
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。System.out.println("呼气...吸气...System.out.println("飞行...flyingAnimals.flyingA...
熟读《阿里巴巴java开发手册》(五、 MySQL 数据库)
1. 【强制】 表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint( 1 表示是, 0 表示否)。 说明: 任何字段如果为非负数,必须是 unsigned。 注意: POJO 类中的任何布尔类型的变量,都不要加 is 前缀,所以...
【精选】设计原则之【里氏替换原则】
子类对象(object of subtype/derived class)能够替换程序(program)中父类对象(object of base/parent class)出现的任何地方,并且保证原来程序的逻辑行为(behavior)不变及正确性不被破坏。实现多态的条件: 1.继...
数据结构-图的概念与存储结构(类C语言版)
图:G = (V, E) Graph = (Vertex, Edge) V:顶点(数据元素)的有穷非空集合; E:边的有穷集合。每条边都是无方向的。每条边都是有方向的。任意两个点都有一条边相连。有很少边或弧的图(e<nlogn)。有较多边或弧的图。边/弧带权的图。有边/弧相连的两...
Java实现基于DFA算法的网站敏感词过滤
敏感词、文字过滤是一个网站必不可少的功能,高效的过滤算法是非常有必要的。String[] s = "广告,广告词,中奖".if (text.System.out.System.out.println(text.matches(".*(广告|广告词|中奖).其实无论采取哪个方法,基...
Java负载均衡算法实现与原理分析(轮询、随机、哈希、加权、最小连接)
负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。既然涉及到多个机器,就涉及到任务如何分发,这就是负载均衡算法问题。轮...
算法-hash散列表查找详解
基本思想:记录的存储位置与关键字之间存在对应关系。 对应关系——hash函数。 选取某个函数,依该函数按关键字计算元素的存储位置,并按此存放; 查找时,由同一个函数对给定值k计算地址,将k与地址单元中元素关键码进行比对,确定查找是否成功。散列方法中使用的转换函数。按上述思想构造的...
下一页