logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Windows 配置 OpenGL 开发环境

启动Visual Studio(假设为2019版本)。创建一个新的C++空项目。在界面顶部中心,菜单栏下方有两个相邻的下拉菜单。选择x64。先在Debug模式下(然后在Release模式下)进入“项目属性”并进行以下更改。在“VC++目录”下(也可能写成“C/C++”),单击“常规”,然后在“包含目录”中添加你之前创建的include文件夹。在“链接器”下,有以下两个更改:单击“常规”,然后在“附

#图形渲染
归并排序算法

在 merge 方法中,创建了两个临时数组,总临时数组大小为 $ n1 + n2 = right − left + 1$,在最顶层递归(合并整个数组时),right - left + 1 = n,因此临时数组的总大小最大为 $ O(n) $,虽然每一层递归的 merge 都会创建临时数组,但这些数组在 merge 方法结束后会被垃圾回收,且递归是分阶段执行的(先完成左子树递归,再右子树,再合并),

文章图片
#排序算法#算法#数据结构
快速排序算法及其优化

在递归调用栈中,平均情况下,当分区平衡时,递归树的深度为 O(logn),每次递归调用在栈上存储常量级的变量(low、high、pi 等),因此栈空间为O(log n)。所以快速排序的总空间复杂度由递归栈主导,平均情况是O(log n),最坏情况是O(n)。每一层的总工作量是O(n)(所有子数组的元素总数约为 n )。总时间复杂度 = 每层工作量 O(n) × 层数 O(logn) = O(nlo

文章图片
#排序算法#算法#数据结构
Kotlin 作用域函数 let 的实现原理

Kotlin 中的let是一个,它广泛用于作用域函数(Scope Functions)中,尤其适用于对可空对象(nullable)做非空判断并执行代码块的场景。

#kotlin#开发语言#android
C++ 同步原语

同步原语(Synchronization Primitives)是操作系统和编程语言提供的基本工具,用于在多线程或并发环境中协调线程(或进程)之间的执行顺序,管理共享资源的访问,以避免数据竞争(data race)、死锁(deadlock)等问题。(C++11):RAII 封装,构造时加锁,析构时解锁,不支持手动解锁。(C++11):允许同一线程多次锁定(递归加锁),但其他线程仍被阻塞,适合需要递

文章图片
#c++#开发语言#算法
到底了