算法 随想录 柠檬水 队列

Luggage Pickup PTA(栈和队列的使用)

题目 When a flight arrives, the passengers will go to the Arrivals area to pick up their baggage from a luggage conveyor belt (行李传送带). Now assume that w ......
队列 Luggage Pickup PTA

从原理聊JVM(一):染色标记和垃圾回收算法

本篇介绍了JVM中垃圾回收器相关的基础知识,后续会深入介绍CMS、G1、ZGC等不同垃圾收集器的运作流程和原理,欢迎关注。 ......
算法 标记 原理 垃圾 JVM

力扣 406. 根据身高重建队列

406. 根据身高重建队列 假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] = [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。 请你重新构造并返回输入数组 people ......
队列 身高 406

Diffie-Hellman密钥交换算法

隐私计算常用到各种加密算法,那么双方如何协商得到同一个不被泄露的密钥呢? 一种做法是基于RSA,拥有公钥的一方将随机私钥加密提供给对方,对方再利用私钥解密出密钥。于是双方都得到了会话密钥。 本篇是另一种密钥交换算法,可以保证“通讯双方在完全没有对方任何预先信息的条件下通过不安全信道创建起一个密钥”:... ......
密钥 Diffie-Hellman 算法 Hellman Diffie

算法题目

-- coding: utf-8 -- """ Created on Wed Jun 1 15:34:00 2022 @author: guess who i am """ 说明: 1 本文共一百八九十道题,涵盖了截止2022.6.30我在网上所见到的所有题,真正的最全题库,只有答案没有题目。 ht ......
算法 题目

牛顿迭代法求方程根(递归算法)

#include<iostream>#include<cmath>using namespace std;double f_origianal(double a, double b, double c, double d, double newx){ return a * pow(newx, 3) ......
迭代法 方程 算法

每天进步一点点-多进程和多线程以及内置队列使用

多进程 import multiprocessing as mp import threading as td import time def job(q): res = 0 for i in range(10000000): res += i + i ** 2 + i ** 3 q.put(res ......
队列 线程 进程

单调队列优化

1. 子矩阵 来源:第十四届蓝桥杯省赛C++C组 题目链接 题目描述 给定一个 $n × m$ ($n$ 行 $m$ 列)的矩阵。 设一个矩阵的价值为其所有数中的最大值和最小值的乘积。 求给定矩阵的所有大小为 $a × b$ ($a$ 行 $b$ 列)的子矩阵的价值的和。 答案可能很大,你只需要输出 ......
队列

护士排班——线性规划算法的实现

一、问题描述 护士排班问题是指在医院中,如何合理地安排护士的工作时间,以满足患者的需求,同时保证护士的工作质量和生活质量。该问题通常涉及到多个护士、多个班次和多个工作日,需要考虑护士的工作时间、休息时间、轮班时间等因素。 二、线性规划模型 为了解决护士排班问题,可以采用线性规划模型。假设有 n 个护 ......
线性 算法 护士

几何算法

C++常用计算几何算法 - 小四的海市蜃楼 - C++博客 (cppblog.com) (59条消息) C++常用计算几何算法_计算几何常用算法 c++_Belial_2010的博客-CSDN博客 ......
几何 算法

4-算法

常见的七种查找算法: 1. 基本查找 ​ 也叫做顺序查找 说明:顺序查找适合于存储结构为数组或者链表。 基本思想:顺序查找也称为线形查找,属于无序查找算法。从数据结构线的一端开始,顺序扫描,依次将遍历到的结点与要查找的值相比较,若相等则表示查找成功;若遍历结束仍没有找到相同的,表示查找失败。 示例代 ......
算法

SQL JOIN的常见连接算法(转载)

原文:https://zhuanlan.zhihu.com/p/495442432 在数据库和大数据领域,通过SQL中的JOIN连接将两个及两个以上的表(或中间表、视图、物化视图)中的数据 按指定的连接条件关联起来,是很常用也很方便的操作。 我们前面学习了JOIN有多种常见连接方式如内连接INNER ......
算法 常见 JOIN SQL

C#中使用CAS实现无锁算法

CAS 的基本概念 CAS(Compare-and-Swap)是一种多线程并发编程中常用的原子操作,用于实现多线程间的同步和互斥访问。 它操作通常包含三个参数:一个内存地址(通常是一个共享变量的地址)、期望的旧值和新值。 CompareAndSwap(内存地址,期望的旧值,新值) CAS 操作会比较 ......
算法 CAS

快速排序以及快速排序常用的三种算法

快速排序相比其他极大排序在效率和空间复杂度上都算是比较优得。并且在进行了三数取中优化以后,除了及其小的情况外,基本能保持logn的时间复杂度。 三数取中法;在一堆数据中随机取三个数,然后取其中间大小的数。 有了三数取中的基础以后,快速排序的key就可以用三数取中来完成了。 1:快速排序有三种常用的方 ......
算法 常用

队列

队列:也是一个线性表(即包括顺序队列和链式队列),先进先出,但限制在两端进行插入和删除 队尾:进行存入操作的一端 队头:进行删除操作的一端 顺序队列: //sqqueue.h #ifndef _SQ_QUEUE_H_H #define _SQ_QUEUE_H_H #define N 6 typede ......
队列

QuHai互联科技 算法题部分

11、实现计算第n个斐波那契数 12、给定一个字符串编码规则,如输入字符串”Y3E12S!3”,字母后面的数字表示该字符重复几次,如果字符后没有数字则表示一个字符,最终输出转码后的字符串’YYYEEEEEEEEEEEES!!!’。试写出转码的函数,编程语言不限。 13、简述你所了解的两种或以上排序算 ......
算法 部分 QuHai 科技

扎实打牢数据结构算法根基,从此不怕算法面试系列之week01 02-09 测试算法时间复杂度性能的方式方法

#1、数组生成器 测试算法性能肯定不能自己手动声明创建数组了,在现代计算机上,对于O(n)级别的算法,都需要10W级别以上的数据才能看到性能,我们肯定不能手动声明10W个元素的数组吧? 所以,创建数组生成器。 这里,自己创建一个数组生成器——ArrayGenerator。 package com.m ......
算法 复杂度 数据结构 根基 性能

学习十大排序算法(1)——选择排序【实现方法c语言】

十大排序算法第一节——选择排序 复制代码直接滑到最后!!! 选择排序就是找到(最大或者)最小元素,放到最开始的位置,然后就是在没有排序的序列中找到最小的排在已经排好的序列之后,直至没有排数列排完。(自己的理解) 大概解释代码其中的细节:第6行中的sizeof的用法是求出括号里面的所占的字节数,比如s ......
算法 语言 方法

vue2源码-十、diff算法

diff算法 diff算法的特点就是平级比较,内部采用了双指针方式进行优化,优化了常见的操作。采用了递归比较的方式。 针对一个节点的diff算法 先拿出根节点来进行比较如果是同一个节点则比较属性,如果不是同一个节点则直接换成最新的即可。 同一个节点比较属性后,复用老节点 比较儿子 一方有儿子 一方没 ......
算法 源码 vue2 diff vue

福特-富克森算法

福特-富克森(Ford-Fulkerson)算法是一种求解最大流问题的经典算法,它的基本思想是通过不断地增广路径来找到最大流。 最大流问题通常是指在网络中找到从源点到汇点的最大流量,其中网络由若干条有向边组成,每条边都有一个容量,表示该边可以通过的最大流量。最大流问题的目标是找到一个流,使得从源点到 ......
算法

分而治之算法

分而治之算法(Divide and Conquer Algorithm)是一种基于递归的算法思想,将问题划分为若干个子问题,逐个解决子问题并将它们合并成原问题的解。 分而治之算法通常包括以下步骤: 分解:将原问题分解为若干个子问题,这些子问题的结构与原问题相同或类似,但规模更小。 解决:递归地解决每 ......
算法

队列和栈的简单实现

简单实现2个数据结构,来帮助我们更好的处理数据 基本 队列(Queue)是一种先进先出(FIFO)的数据结构,通常用于按照顺序处理任务或事件。在前端中,队列可以用于实现异步函数的调用、消息通知、动画播放等场景。队列还可以和数组结合使用,通过push()方法将元素添加到队列尾部,shift() 方法将 ......
队列

双端队列数据结构

双端队列是一种数据结构,也被称为deque或double-ended queue。它类似于队列,但它允许从队列的两端添加或删除元素,而不仅仅是队列的一端。 双端队列可以用数组或链表实现。如果使用数组实现,它可以使用循环数组的方式,使得在头尾进行插入和删除的操作可以在常数时间内完成。如果使用链表实现, ......
数据结构 队列 结构 数据

Dijkstra的算法

Dijkstra算法是一种单源最短路径算法,用于在带有非负权重的图中,找到一个源节点到所有其他节点的最短路径。该算法的基本思想是通过贪心的方式逐步扩展当前已知的最短路径集合,直到找到源节点到所有其他节点的最短路径。 Dijkstra算法的具体步骤如下: 初始化:设置源节点到自己的距离为0,将源节点标 ......
算法 Dijkstra

兔子产子问题(递归算法)

#include<iostream>using namespace std;int f(int n){ if (n == 1 || n == 2) return 1; return f(n - 1) + f(n - 2);}int main(){ int i; for (i = 0; i < 30; ......
算法 兔子 问题

如何将 std::queue 封装成线程安全的队列

仅使用互斥保护每个成员函数 问题 1 尽管运用互斥保护共享数据,条件竞争仍然无法避免,考虑如下代码: if (!q.empty()) { const int value = q.front(); q.pop(); do_something(value); } 在 empty() 和 front() ......
队列 线程 queue std

《算法竞赛进阶指南》 第五章 237. 程序自动分析

地址 https://www.acwing.com/problem/content/239/ 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。 考虑一个约束满足问题的简化版本:假设 x1,x2,x3,… 代表程序中出现的变量, 给定 n 个形如 xi=xj 或 xi≠xj 的变 ......
算法 指南 程序 237

四种语言刷算法之对链表进行插入排序

力扣147. 对链表进行插入排序 1、C /** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode* inserti ......
算法 语言

十大排序算法

一、冒泡排序 public class BubbleSort implements IArraySort { @Override public int[] sort(int[] sourceArray) throws Exception { // 对 arr 进行拷贝,不改变参数内容 int[] a ......
算法

C# 获取打印机队列的打印任务

//引入命名空间:using System.Runtime.InteropServices; [DllImport("winspool.drv", CharSet = CharSet.Auto, SetLastError = true)] private static extern bool Set ......
队列 打印机 任务