堆排序是结合 “堆数据结构” 与 “选择排序” 思想的高效排序算法,凭借 O (n log n) 的稳定时间复杂度、原地排序的特性,成为无需稳定性场景下的优质选择。它通过构建...
堆排序是结合 “堆数据结构” 与 “选择排序” 思想的高效排序算法,凭借 O (n log n) 的稳定时间复杂度、原地排序的特性,成为无需稳定性场景下的优质选择。它通过构建...
顺序查找(也叫线性查找)是所有查找算法的 “起点”,它无需数据预处理、逻辑极简,是理解 “查找” 本质的核心范例。虽然效率不算最优,但因其适配所有数据结构、无需有序的特性,既...
插入排序是最贴近日常手动排序习惯的算法 —— 就像整理扑克牌时,逐张将牌插入到已有序的牌组中。它逻辑简单、对近乎有序的数组效率极高,既是面试基础考点,也是理解 “增量排序” ...
选择排序是入门级排序算法中极具代表性的一种,它思路简单直白,核心是 “选择”—— 每一轮从待排序区间选出最值元素,放到指定位置。相较于冒泡排序,选择排序交换次数更少,是理解 ...
归并排序是基于 “分治思想” 的经典排序算法,凭借稳定的 O (n log n) 时间复杂度、稳定排序的特性,成为对数据稳定性有要求场景的首选。它将 “拆分” 与 “合并” ...
希尔排序(Shell Sort)是插入排序的优化版本,通过 “分组插入排序 + 逐步缩小步长” 的策略,大幅降低插入排序在无序数组中的时间开销。它摒弃了插入排序 “逐个比较”...
快速排序是工业界应用最广的排序算法之一,凭借 O (n log n) 的平均时间复杂度、原地排序的特性,成为实际开发中排序的首选方案。它以 “分治” 为核心思想,通过 “分区...
观察者模式是行为型设计模式的核心成员,核心目标是定义对象间的一对多依赖关系,当一个对象状态变化时,所有依赖它的对象都会收到通知并自动更新。 一、观察者模式核心实现 核心特点将...
责任链模式是行为型设计模式的核心成员,核心目标是将多个请求处理器串联成一条链,请求沿着链传递,直到有一个处理器能处理该请求,实现请求发送者与处理者的解耦。 一、责任链模式核心...
模板方法模式是行为型设计模式的核心成员,核心目标是定义一个算法的骨架,将算法中可变的步骤延迟到子类中实现,保证算法整体流程不变,同时允许子类定制具体步骤。 一、模板方法模式核...
装饰器模式是结构型设计模式的核心成员,核心目标是在不修改原有对象代码的前提下,动态地给对象添加额外功能,通过嵌套装饰灵活组合不同功能,相比继承更具灵活性。 一、装饰器模式核心...
策略模式是行为型设计模式的核心成员,核心目标是定义一系列算法 / 行为,将其封装为独立的策略类,使它们可互相替换,让算法变化独立于使用算法的客户端。 一、策略模式核心实现 核...
适配器模式是结构型设计模式的核心成员,核心目标是将一个类的接口转换成客户端期望的另一个接口,让原本因接口不兼容而无法协同工作的类能够正常交互。本文从核心原理、两种实现方式、实...
代理模式是结构型设计模式的核心成员,核心目标是为目标对象提供代理对象,由代理控制对目标对象的访问,并可在访问前后添加增强逻辑(如日志、权限、缓存),让目标对象专注核心业务。本...
建造者模式是创建型设计模式的核心成员,核心目标是将复杂对象的构建过程与表示分离,通过分步构建的方式灵活创建不同形态的复杂对象。根据业务场景的不同,主要分为「标准 GOF 版(...
工厂模式是创建型设计模式的核心代表,其家族包含「简单工厂」「工厂方法」「抽象工厂」三个核心成员 —— 三者核心目标都是封装对象创建逻辑、解耦创建与使用,但适用场景和扩展能力差...
一、背景介绍 Sentinel 作为阿里开源的流量治理组件,默认将规则存储在控制台和客户端内存中,服务重启后规则丢失;而 Nacos 作为配置中心,可实现配置的持久化和动态推...
什么是Canal Canal 是阿里巴巴开源的一款基于 MySQL 数据库增量日志解析的数据同步工具,主要功能是提供增量数据订阅和消费 Canal 工作原理 canal 模拟...
1. 什么是 Jasypt? Jasypt (Java Simplified Encryption) 是一个开源的 Java 加密库,提供简单易用的接口来处理加密和解密操作。...
什么是自动装配 Spring Boot 自动装配(Auto Configuration)是 Spring Boot 的核心特性之一,它体现了"约定优于配置"(Conventi...