算法 标记 原理 垃圾

递归算法

一、基本概念 递归算法是一种直接或者间接调用自身函数或者方法的算法。递归算法的实质是把问题分解成规模缩小的同类问题的子问题,然后递归调用方法来表示问题的解。递归算法对解决一大类问题很有效,它可以使算法简洁和易于理解。递归算法,其实说白了,就是程序的自身调用。我们可以利用大道至简的思想,把一个大的复杂 ......
算法

搜索与回溯算法(深搜算法)——不撞南墙不回头

基本概念 DFS全称是 Depth First Search,中文名是深度优先搜索,是一种用于遍历或搜索树或图的算法。所谓深度优先,就是每次都想往更深的节点走。DFS通常用来指代用递归函数实现的搜索,但实际上两者并不完全一样。 优点:代码量小,可读性强,更容易实现。 缺点:若深度过高,容易栈溢出。 ......
算法

上班摸鱼刷算法-Java-hot100-[141]环形链表

//快慢指针public class Solution { public boolean hasCycle(ListNode head) { if (head == null || head.next == null) { return false; } ListNode fastNode = he ......
环形 算法 Java-hot Java 100

上班摸鱼刷算法-Java-hot100-[160]相交链表

public class Solution { public ListNode getIntersectionNode(ListNode headA, ListNode headB) { if (headA == null || headB == null) { return null; } Lis ......
算法 Java-hot Java 100 160

上班摸鱼刷算法-Java-hot100-[21]合并两个有序链表

//将一个链表插入到另一个链表中class Solution { public ListNode mergeTwoLists(ListNode list1, ListNode list2) { if (list1 == null) { return list2; } if (list2 == nul ......
算法 Java-hot 两个 Java 100

Raid0、Raid1、Raid5、Raid6、Raid10、Raid50、Raid60的原理、特点、性能区别

#### 一.RAID 是什么? RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,简称为「磁盘阵列」,其实就是用多个独立的磁盘组成在一起形成一个大的磁盘系统,从而实现比单块磁盘更好的存储性能和更高的可靠性。 #### 二.RAID 有哪些 ......
Raid 原理 特点 性能 Raid0

语言模型的预训练[6]:思维链(Chain-of-thought,CoT)定义原理详解、Zero-shot CoT、Few-shot CoT 以及在LLM上应用

语言模型的预训练[6]:思维链(Chain-of-thought,CoT)定义原理详解、Zero-shot CoT、Few-shot CoT 以及在LLM上应用 ......
CoT Chain-of-thought shot Zero-shot Few-shot

cms和g1垃圾收集器

一、cms垃圾收集器 jdk1.5之后出现 在标记清理方法上做优化 1、初始标记 2、并发标记 3、重新标记 4、并发清除 在1、3会StopTheWorld 描述: 初始标记仅仅只是标记GC Root可以直接关联到的对象,速度很快。并发标记是进行 GC Root tracting的过程,重新标记是 ......
垃圾 cms

面试题:ReentrantLock 实现原理

# ReentrantLock 实现原理 面试中遇到“ ReentrantLock 实现原理?”这个问题,我们应该怎么回答?是否直接就开始介绍 AQS, CLH 队列,这些高大上的词语。这样的回答会给面试官两个不好的印象: * 问题回答没有逻辑,没有解释 ReentrantLock 与 AQS 等关 ......
ReentrantLock 原理

6大常用基础算法

# 6大常用基础算法 ## 1 冒泡排序(BubbleSort) ### 基本思想 两个数比较大小,比较大的数下沉,比较小的数冒起来。 ### 时间复杂度 O(n)2 ### 代码 ~~~c++ ``` int a[]={1 5,4,3,2,8,0,7}; int length=sizeof(a)/ ......
算法 常用 基础

JavaScript汉字转码原理解析

JavaScript是一种高级编程语言,广泛应用于Web、移动应用开发等领域。其中,涉及到的汉字编码问题一直备受关注。本篇文章将从JavaScript汉字转码的原理解析入手,为读者深入剖析这一现象。 什么是汉字编码? 汉字编码是指计算机用二进制形式来表示中文字符的方式。由于计算机只能识别二进制数,而 ......
JavaScript 原理

JavaScript和ObjectiveC之间的交互原理是什么

JavaScript和ObjectiveC之间的交互原理是什么? 在当前的互联网时代中,JavaScript和ObjectiveC的结合是非常常见的。这是因为JavaScript和ObjectiveC的特性各有千秋,它们在不同的方面有着不同的优势。JavaScript属于一种脚本语言,主要运行于浏览 ......
JavaScript ObjectiveC 原理 之间

代码随想录算法训练营第三十四天| 完全背包 518. 零钱兑换 II 377. 组合总和 Ⅳ

完全背包 区别: 每种物品都是可以无线多个 代码: 1 // 多背包问题 2 // 有N个物品,他们的体积和重量如下,但是这些物品有无限个 3 // 需要发挥背包的最大容量,来让价值最大 4 // 5 // dp[n]: 当容量为N的时候,背包的价值最大是多少 6 // dp[n]: 7 // dp ......
随想录 零钱 训练营 总和 随想

C#选择排序(Selection Sort)算法

选择排序原理介绍 选择排序(Selection Sort)是一种简单的排序算法,其实现原理如下: 遍历待排序数组,从第一个元素开始。 假设当前遍历的元素为最小值,将其索引保存为最小值索引(minIndex)。 在剩余的未排序部分中,找到比当前最小值还要小的元素,并更新最小值索引。 在遍历结束后,将找 ......
算法 Selection Sort

装饰器/递归/算法

多层装饰 """语法糖会将紧挨着的被装饰对象的名字当做参数自动传入装饰器函数中""" # 判断七句print执行顺序 def outter1(func1): print('加载了outter1') 打印顺序③ 和前面的定义对应 def wrapper1(*args, **kwargs): print ......
算法

多线程:C语言 - 简易线程池的原理和实现

[TOC] ## 线程循环处理任务,线程不退出 我们都知道线程执行任务,创建和销毁线程需要额外时间开销 此时需要**池化一批线程,避免多任务导致频繁的线程创建和销毁** 那么不销毁线程的话,就需要**让线程循环执行任务** 循环执行任务的要点: 1. 循环读取任务 1. 任务退出不是线程退出 ### ......
线程 简易 原理 语言

C#城市线路图的纯算法以及附带求极权值

​ 常用的数据结构写出来 纯属于算法 性方面还有待提高 时间复杂度最坏情况下O(2^n) 最优:O(n^2) 线路图为双向 带有权值 比如A-B距离是5000km 那么B-A有可能不是5000km 所以我在LoadData方法时候没做交换变量直接存放在集合里面 以起点递归查找下一连接点并返回当作起点 ......
极权 线路图 算法 线路 城市

优化基础4——分支定界法与粒子群算法

1. 分支定界算法 王源大佬在这里讲的很清楚,看这个整数规划里面的内容就可以看懂 【整数规划(三)】分支定界法及其代码实现 - 知乎 (zhihu.com) 主要在于如何分支、如何根据每个节点的上下界确定全局上下界、如何剪枝 2. 粒子群 混合粒子群算法(PSO):C++实现TSP问题 - 知乎 ( ......
粒子 分支 算法 基础

文心一言 VS 讯飞星火 VS chatgpt (63)-- 算法导论6.5 2题

文心一言 VS 讯飞星火 VS chatgpt (63)-- 算法导论6.5 2题 # 二、试说明 MAX-HEAP-INSERT(A,10)在堆A=(15,13,9,5,12,8,7,4,0,6,2,1)上的操作过程。 ## 文心一言: MAX-HEAP-INSERT(A, 10) 是将元素 10 ......
文心 导论 算法 chatgpt VS

c语言 排序算法

// sort_algorituhm.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include <iostream> #include<algorithm> using namespace std; #define elemtype int //冒泡排序法,组 ......
算法 语言

2023“钉耙编程”中国大学生算法设计超级联赛(1)

# [1001 Hide-And-Seek Game](http://acm.hdu.edu.cn/showproblem.php?pid=7275) ## 题意:给出一颗树,两人在树上特定两点来回走,问最早在那个节点相遇 ## 思路:枚举所有点,看它是否同时在两条链上,如果在,那么结合周期、两人最 ......
钉耙 算法 联赛 大学生 大学

【后端面经-Java】JVM垃圾回收机制

本文对JVM垃圾回收机制做了详细解释,从"where"、"whice"、"when"、"why"、"how"、"who"的角度,重点介绍JVM垃圾回收机制的触发机制、垃圾判断算法、垃圾回收算法和垃圾回收机制。 ......
端面 机制 垃圾 Java JVM

KMP算法笔记

1.概念解析 前置: 将原串称之为 文本串,匹配串称之为 模式串。 KMP的实质其实就是:利用已经匹配的信息,来加速查找的过程。 对于暴力解法而言,当我进行模式串匹配时,遇到一个不匹配的字符,那么只能一步一步往下滑动,然后重新匹配。 但是对于KMP算法而言,利用到了 前缀子串和后缀子串的匹配信息。 ......
算法 笔记 KMP

反向传播和逻辑回归(分类算法)

Backpropagation(反向传播) Cn为计算得出值与实际值的差距 如何算出Cn对z的微分:由微分形式的不变性得,Z’为a的线性函数,可以得出Z’对a微分为w3 由于C(Z’,Z’’,…)是多元函数,链式求导法则得: 由反向计算,从右向左表示为: 计算微分时就从最右侧输出层反向向前求微分,每 ......
算法 逻辑

最短路之dijkstra算法

**dijkstra比之上次介绍的的bellman-ford算法的用途上最大的区别就是dijkstra只可用于求无负权边图中的最短路,堆优化后的dij比bellman-ford的复杂度(mn)更小(mlogn)** ###代码源关于dijkstra的解释 ![](https://img2023.cn ......
算法 dijkstra

最短路之 Bellman-ford 算法

###bellman-ford算法的思想 : 若有向图有n个点,m条边 。 扫描所有边,对每条边进行一次松弛(即对a,b为端点 , 权重为w的边,dist[b] = min(dist[a] , dist[a] + w )) 重复此流程(最多重复n次)直到没有更新操作发生 ### 例题1 bellma ......
Bellman-ford 算法 Bellman ford

Nginx的的目录结构,基本运行原理及基本配置文件

Nginx目录结构 主要的目录是conf,html,及sbin。 conf目录放的是核心配置文件: 刚安装好的nginx.conf如下: #user nobody;worker_processes 1; #error_log logs/error.log;#error_log logs/error. ......
基本配置 原理 结构 文件 目录

屏幕缩放比例原理

情景一: 基准宽度:bw = 1920 基准高度:bh = 1080 变换后宽度:tw = 1920 变换后高度:th = 600 基准比例: br = bw/bh bw/bh > tw/th 表示宽度大, 将高度最终显示为th(即高度直接显示,按同比例显示情况下计算宽度需要显示为多少), 故高度缩 ......
屏幕 比例 原理

历年检测、分割、生成算法梳理(2023)

检测算法 分割算法 生成算法 ......
历年 算法 2023

字典树(trie) 算法笔记

## P1 字典树是什么 顾名思义就像一个字典一样,可以查询某单词是否出现,也可以查找同一前缀的单词的个数等等操作。 ## P2 字典树的实现 字典树是用树来实现的(这不废话吗),如果从根节点走到一个已标记过的节点(后面我们会称它为单词节点)的一条路径就是一个单词。 我们定义一下变量(或数组)的表示 ......
算法 字典 笔记 trie