logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

算法基础(图论)—拓扑排序

拓扑排序拓扑排序1有向⽆环图若⼀个有向图中,则称为(directed acycline graph),简称 DAG 图。2.AOV ⽹举⼀个现实中的例⼦:课程的学习是有优先次序的,如果规划不当会严重影响学习效果。课程间的先 后次序可以⽤有向图表⽰:ViVjViVjAOV ⽹中不能有回路,否则就不能确定回路中的活动究竟哪个先实施。3拓扑排序拓扑排序的⽬标是将,使得。在课程问题中,相当于就是找到⼀个排

文章图片
#算法#图论#c++ +1
算法基础-并查集

本文介绍了并查集数据结构及其应用。主要内容包括:1. 基本概念:使用双亲表示法实现森林结构,支持集合查询、合并和判断操作。2. 实现方法:初始化时每个元素自成一个集合,通过路径压缩优化查询效率,时间复杂度接近O(1)。3. 典型应用:解决亲戚关系判断、水塘计数、程序约束验证等问题。4. 扩展形式:包括扩展域并查集(处理多种关系)和带权并查集(维护元素间距离信息)。5. 实际案例:给出团伙问题、食物

文章图片
#算法#c++#数据结构
数据结构(12)堆排序

堆排序是一种基于堆数据结构的选择排序算法,通过构建大堆(升序)或小堆(降序)实现排序。算法分为两步:首先通过向下调整算法构建初始堆(时间复杂度O(N)),然后通过反复交换堆顶与末尾元素并调整堆完成排序(时间复杂度O(N*logN))。堆排序空间复杂度为O(1),但不稳定。实现时需注意升序建大堆、降序建小堆的关键区别,并通过调整父子节点关系维持堆性质。典型实现包括交换函数、向下调整函数和主排序函数,

文章图片
#数据结构#链表#算法
数据结构(6)(八道链表面试题)

本文总结了链表相关的经典算法题及解法,主要包括: 链表分割:使用哨兵节点将链表按特定值分割为两部分 回文链表判断:通过快慢指针找中点并反转后半部分进行比较 链表相交检测:计算长度差后同步遍历寻找交点 环形链表检测:快慢指针相遇判断是否存在环 带随机指针链表的深拷贝:通过节点复制和链接处理实现 链表插入排序:维护已排序部分并逐个插入新节点 删除重复节点:遍历链表并跳过重复值节点 这些题目涵盖了链表操

文章图片
#数据结构
Redis存储(4)Redis五大数据类型之String和Hash

Redis字符串类型是基础数据结构,支持字符串、数字和二进制数据存储(最大512MB)。常用命令包括SET/GET/MSET/MGET等批量操作,以及INCR/DECR等计数命令。字符串内部编码根据数据动态选择int、embstr或raw格式。典型应用场景包括:1)缓存层加速读写,缓解后端压力;2)视频播放计数等统计功能;3)集中管理分布式Session;4)实现短信验证码频控。相比直接使用多个键

文章图片
#redis#哈希算法#数据库 +1
Redis存储(5)Redis五大数据类型之 List 和 Set。

Redis列表(List)和集合(Set)数据结构详解 列表(List)特性: 有序元素集合,支持重复元素 两端操作:lpush/rpush(插入)、lpop/rpop(删除) 常用命令:lrange(范围查询)、lindex(索引查询)、llen(长度查询) 应用场景:消息队列、微博Timeline分页 集合(Set)特性: 无序元素集合,元素唯一 支持交(sinter)、并(sunion)、差

文章图片
#redis#数据库#缓存 +2
Redis存储(6)Redis五大数据类型之 Zset

Redis有序集合(Zset)是一种特殊数据结构,兼具集合去重和元素排序特性。每个元素关联一个分数(score),通过分数实现自动排序。Zset支持添加/删除元素(zadd/zrem)、范围查询(zrange/zrevrange)、排名查询(zrank/zrevrank)等操作,时间复杂度多为O(logN)。内部采用跳表(skiplist)或压缩列表(ziplist)实现,根据元素数量和大小自动选

文章图片
#redis#数据库#缓存
Linux_14(多线程)线程控制+C++多线程

本文介绍了Linux线程控制的关键概念和操作。主要内容包括:1)线程创建(pthread_create)的参数和使用方法;2)线程结束的三种方式(pthread_exit、return和pthread_cancel);3)线程等待(pthread_join)的必要性和实现机制;4)线程tid的本质是共享区TCB结构体地址;5)线程局部存储(__thread)实现线程独享全局变量;6)线程分离(pt

文章图片
#java#jvm#开发语言
MySQL数据库(11)-C/C++连接MySQL_发送请求

本文详细介绍了C/C++程序连接MySQL数据库的全过程:1. 首先从MySQL官网下载并安装Connector/C++库文件;2. 通过编写测试代码验证库连接是否成功;3. 详细讲解了MySQL API的核心函数,包括mysql_init()、mysql_real_connect()等连接函数,以及mysql_query()等SQL操作函数;4. 提供了完整的代码示例,演示了如何连接数据库、执行

文章图片
#数据库#mysql#linux +1
网络和Linux网络-14(IO多路转接)poll和epoll编程-服务器

本文主要介绍了三种I/O多路转接技术:poll、epoll及其工作原理。poll解决了select的文件描述符数量限制问题,通过pollfd结构体分离用户和内核空间,但仍需遍历检测就绪事件。epoll在poll基础上改进,采用红黑树管理文件描述符,通过回调机制将就绪事件加入队列,实现了O(1)时间复杂度的高效处理。文章详细阐述了epoll的三种系统调用(create、ctl、wait)和两种工作模

文章图片
#linux#运维#服务器
    共 17 条
  • 1
  • 2
  • 请选择