博客园  :: 首页  :: 新随笔  :: 管理

2022年10月9日

摘要: Linux C/C++服务器 多路查找树(B树、B+树) 我们前面讨论的红黑树,处理数据都是在内存中,因此考虑的都是内存中的运算时间复杂度。但若我们要操作的数据集非常大,大到内存已经没办法处理了怎么办呢? 这种情况下,对数据的处理需要不断从硬盘等存储设备中调入或调出内存页面,一旦涉及到这样的外部存储 阅读全文

posted @ 2022-10-09 13:41 wsg_blog 阅读(189) 评论(0) 推荐(0) 编辑

摘要: Linux C/C++服务器 红黑树(rbTree) 一种特殊的平衡 二叉排序树,一般用于key,value查找,插入删除查找$O(log_{2}n)$,应用广泛; 定义 具有二叉排序树性质 每个结点是红的或者黑的,根结点是黑的,每个叶子结点是黑的(一般叶子结点都是隐藏的空结点) 如果一个结点是红的 阅读全文

posted @ 2022-10-09 13:33 wsg_blog 阅读(30) 评论(0) 推荐(0) 编辑

2022年9月22日

摘要: Linux C/C++ 服务器开发 1 C/C++ 基础 1.1.1 红黑树 1.1.2 磁盘存储链式的B树与B+树 1.1.3 海量数据去重的hash与BoomlFilter 1.2.1 创建型设计模式 1.2.2 结构型设计模式 1.3.1 c++11 智能指针与右值引用 1.3.2 c++11 阅读全文

posted @ 2022-09-22 23:33 wsg_blog 阅读(160) 评论(0) 推荐(0) 编辑

2022年7月4日

摘要: index 数据结构与算法 二叉排序树 一颗二叉树,中序遍历有序,{35,37,47,51,58,62,73,88,93,99},我们通常称它为二叉排序树,又称为二叉查找树。 定义 若它的左子树不空,则左子树上所有节点的值均小于它的根结构的值; 若它的右子树不空,则右子树上所有节点的值均大于它的根结 阅读全文

posted @ 2022-07-04 00:10 wsg_blog 阅读(72) 评论(0) 推荐(0) 编辑

2022年6月17日

摘要: index 数据结构与算法 #图 图数据结构是比较重要、常用、复杂的结构,经常用于解决最优路径的问题。许多机器学习的算法如马尔可夫链、Apriori关联分析结构及算法与图有很多相似之处。 在线性表中,数据元素之间是被串起来的,仅有线性关系,每个数据元素只有一个直接前驱和一个直接后继。在树形结构中,数 阅读全文

posted @ 2022-06-17 16:25 wsg_blog 阅读(78) 评论(0) 推荐(0) 编辑

2022年5月26日

摘要: index 数据结构与算法 数据结构(Data Structure) 数据结构在某种程度上和设计模式类似,都是前辈的武功套路。不同的是,设计模式是近几十年的卓越程序员的智慧结晶,而数据结构是几百上千年的无数科学家、数学家的智慧沉淀,更加具有深厚的背景。 逻辑结构 逻辑结构是指我们通常说的软件层面,有 阅读全文

posted @ 2022-05-26 16:47 wsg_blog 阅读(46) 评论(0) 推荐(0) 编辑

2021年3月29日

摘要: Index LeetCode 树作为单链表的升级版,我们通常接触的树都是二叉树(binary tree),即每个节点最多有两个子节点;可以看出,其与链表的主要差别就是多了一个子节点的指针。 struct TreeNode{ int val; TreeNode *left; TreeNode *rig 阅读全文

posted @ 2021-03-29 21:46 wsg_blog 阅读(85) 评论(0) 推荐(0) 编辑

摘要: Index LeetCode (单)链表是由节点和指针构成的数据结构,每个节点存有一个值,和一个指向下一节点的指针,因此很多链表问题可以用递归来处理,不同于数组,链表不能直接获取任意节点的值,必须要通过指针找到该节点后才能获取其值。在未遍历到链表结尾时,我们也无法知道链表的长度,除非依赖其他数据存储 阅读全文

posted @ 2021-03-29 21:45 wsg_blog 阅读(86) 评论(0) 推荐(0) 编辑

摘要: Index LeetCode 字符串可以看成是字符组成的数组。一般将把字符的ASII码作为标示来使用。 string s; 长度判断为s.length(); BM83.字符串变形[easy] 输入:"This is a sample",16 输出:"SAMPLE A IS tHIS" 字符大小写转换 阅读全文

posted @ 2021-03-29 21:44 wsg_blog 阅读(161) 评论(0) 推荐(0) 编辑

摘要: Index LeetCode 简单罗列下c++ stl里数据结构:vector,hash(unordered_set\map),queue,deque,priority_queue,stack,list 主要会用以上数据结构的成员函数有:empty(),count(),insert(),push() 阅读全文

posted @ 2021-03-29 21:43 wsg_blog 阅读(129) 评论(0) 推荐(0) 编辑

摘要: Index LeetCode 动态规划和其它遍历算法(如深/广度优先搜索)都是将原问题拆成多个子问题然后求解,他们之间的最本质区别是,动态规划保存子问题的解,避免重复计算。 解决动态规划问题的关键是找到状态转移方程,这样我们可以通过计算和存储子问题的解来求解最终问题。 状态转移矩阵及dp数组初始化 阅读全文

posted @ 2021-03-29 21:41 wsg_blog 阅读(97) 评论(0) 推荐(0) 编辑

摘要: Index LeetCode 递归应该已经不陌生了,在前面的二叉树中,我们大量使用了递归,回溯是递归的“副产品”,只要有递归的过程就会有对应的回溯过程,递归和回溯的本质都为穷举,我们通常称为“暴搜”,回溯会有撤回之前操作的功能。 回溯可以解决的问题: 组合问题:如何按照一定规则在N个数中找出k个数的 阅读全文

posted @ 2021-03-29 21:39 wsg_blog 阅读(219) 评论(0) 推荐(0) 编辑

摘要: Index LeetCode 堆,大顶堆priority_queue min、小顶堆,priority_queue<int, vector, greater> max; 栈,先进后出结构,在c++中用stack来表示; 队列,先进先出结构,在c++中用queue来表示 BM42.用两个栈实现队列(2 阅读全文

posted @ 2021-03-29 21:37 wsg_blog 阅读(85) 评论(0) 推荐(0) 编辑

摘要: Index LeetCode 二分查找也被称为二分法或者折半查找,一般来说都是针对有序区间的查找,每次查找时通过将待查找区间分成两部分并只取一部分继续查找,将查找的复杂度大大减少,对于一个长度为O(n)的数组,二分查找的时间复杂度为O(log n),二分查找要求数组是有序的。 具体到代码上,二分查找 阅读全文

posted @ 2021-03-29 21:36 wsg_blog 阅读(93) 评论(0) 推荐(0) 编辑

摘要: Index LeetCode 双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务。也可以延伸到多个数组的多个指针 若两个指针指向同一数组,遍历方向相同且不会相交,则也称为滑动窗口(两个指针包围的区域即为当前的窗口),经常用于区间搜索; 若两个指针指向同一数组,但是遍历方向相反,则可以用 阅读全文

posted @ 2021-03-29 21:34 wsg_blog 阅读(138) 评论(0) 推荐(0) 编辑

摘要: Index LeetCode 贪心 贪心算法或贪心思想采用贪心的策略,保证每次操作都是局部最优的,从而使最后得到的结果是全局最优的。 455.分发饼干[easy] 每个孩子都有自己的饥饿度,一堆饼干大小不同,且每个孩子只能分一个饼干,多少孩子可以吃饱 思路是先对vector数组排序,while循环遍 阅读全文

posted @ 2021-03-29 21:33 wsg_blog 阅读(87) 评论(0) 推荐(0) 编辑

摘要: 笔试刷题 本次刷题主要以牛客网的面试必刷TOP101为主,题型难度循序渐进,分类比较合理;从之前的《剑指Offer》到现在的面试必刷top101、配套讲解,以及carl的代码随想录; 我的刷题记录:我的牛客、我的力扣 使用什么数据结构比较合适?数组还是vector还是list还是deque,stac 阅读全文

posted @ 2021-03-29 20:50 wsg_blog 阅读(258) 评论(0) 推荐(1) 编辑

2021年2月2日

摘要: 《神经网络与深度学习-邱锡鹏》读书笔记 在前馈神经网络中,信息的传递是单向的,这种限制虽然使得网络变得更容易学习,但在一定程度上也减弱了神经网络模型的能力,在生物神经网络中,神经元之间的连接关系要复杂得多。前馈神经网络可以看作一个复杂的函数,每次输入都是独立的,即网络的输出只依赖于当前的输入,但是在 阅读全文

posted @ 2021-02-02 16:43 wsg_blog 阅读(527) 评论(0) 推荐(0) 编辑

2020年12月24日

摘要: 本篇主要用于收集各种最优化的理论方法,目前就知道这么多,之后有更多的方法会写在这里 动态规划 、编辑距离、最小生成树(prim、kruskal)、最短路径(Dijkstra、Floyd)、拓扑排序、关键路径 逼近算法(二分查找、均方根、牛顿迭代、 微积分 等,全局最优与局部最优)、强化学习 triz 阅读全文

posted @ 2020-12-24 18:12 wsg_blog 阅读(318) 评论(0) 推荐(0) 编辑

2020年12月16日

摘要: python函数的参数传递 值为列表的构造方法 dic = {} dic.setdefault(key,[]).append(value) dic.setdefault('a',[]).append(1) dic.setdefault('a',[]).append(2) >>dic >>{'a': 阅读全文

posted @ 2020-12-16 10:55 wsg_blog 阅读(80) 评论(0) 推荐(0) 编辑

2020年11月24日

摘要: svd 奇异值分解(singular value decomposition,SVD) 不明觉厉 ^d^ SVD矩阵分解:利用SVD算法,我们能够用小得多的数据集来表示原始数据集。这样做,实际上是去除了噪声和冗余信息。从生物信息学到金融学等在内的很多应用中,SVD都是提取信息的强大工具。 阅读全文

posted @ 2020-11-24 20:07 wsg_blog 阅读(126) 评论(0) 推荐(0) 编辑

2020年11月7日

摘要: 关于数学的一些理论可以来下边查找 3Blue1Brown 马同学的个人网站 宋老师线代、微积分、概率论、高数 阅读全文

posted @ 2020-11-07 22:37 wsg_blog 阅读(117) 评论(0) 推荐(0) 编辑

2020年11月4日

摘要: PCA是用来给多维数据降维,分析提取主成分的一种算法; 优点:降低数据的复杂性,识别最重要的多个特征。缺点:不一定需要,且可能损失有用信息。适用数据类型:数值型数据。 如何理解主元分析(PCA) 怎么实现的呢?首先说明,在已标注和未标注的数据上都有降维技术,PCA是一种在对未标注数据的降维技术。 在 阅读全文

posted @ 2020-11-04 16:07 wsg_blog 阅读(414) 评论(0) 推荐(0) 编辑

2020年11月3日

摘要: Apriori算法可以实现什么: 关联分析中最有名的例子是“尿布与啤酒”。据报道,美国中西部的一家连锁店发现,男人们会在周四购买尿布和啤酒。这样商店实际上可以将尿布与啤酒放在一块,并确保在周四全价销售从而获利,更多详细应用百度百科apriori 原理: Apriori关联分析算法实现起来可能会复杂一 阅读全文

posted @ 2020-11-03 17:08 wsg_blog 阅读(914) 评论(0) 推荐(0) 编辑

2020年10月23日

摘要: 首先看张图,无监督学习属于机器学习的范畴,主要的方法为“聚类”、“降维” 本系列博客将写一下对无监督学习的理解和简单的python代码应用 二分K-均值聚类算法 五种算法玩转聚类 apriori关联分析 主成成分分析-PCA(principal component annlysis)-数据降维 奇异 阅读全文

posted @ 2020-10-23 16:03 wsg_blog 阅读(142) 评论(0) 推荐(0) 编辑

2020年9月29日

摘要: 《神经网络与深度学习-邱锡鹏》读书笔记 神经元 神经元是构成神经网络的基本单元,神经元的结构如下图所示: 假设一个神经元接收D个输入$x_1,x_2,...x_D$,令向量$x=[x_1;x_2;...;x_D]$来表示这组输入,并用净输入$z$表示一个神经元所获得的输入信号$x$的加权和, $z= 阅读全文

posted @ 2020-09-29 17:57 wsg_blog 阅读(2390) 评论(0) 推荐(0) 编辑

2020年9月20日

摘要: 首先动态规划是比较复杂的算法问题,但在实际解决一些最优化的问题上是很强的利器,如果不了解原理的话,请直接点击下方视频链接,讲的很好,估计用文字描述很难到达下方链接的讲解水平,这可能也就是一些数据结构与算法书没有讲解的原因。 动态规划(第一讲) 动态规划理论基础-carl 接下来,我会去leetcod 阅读全文

posted @ 2020-09-20 23:24 wsg_blog 阅读(137) 评论(0) 推荐(0) 编辑

2020年9月3日

摘要: 二分k均值聚类是k均值聚类的增强版:为克服K-均值算法收敛于局部最小值的问题,有人提出了另一个称为二分K-均值(bisecting K-means)的算法。 #K-means聚类 from numpy import * import matplotlib.pyplot as plt plt.ion( 阅读全文

posted @ 2020-09-03 17:28 wsg_blog 阅读(1607) 评论(0) 推荐(0) 编辑

2020年8月25日

摘要: #svm 支持向量机(Support Vector Machines, SVM) ''' 有些人认为,svm是最好的现成的分类器,这里说的“现成”指的是分类器不加修改即可直接使用。同时, 这就意味着在数据上应用基本形式的SVM分类器就可以得到低错误率的结果。SVM能够对训练集之外的数据点 做出很好的 阅读全文

posted @ 2020-08-25 17:32 wsg_blog 阅读(294) 评论(0) 推荐(0) 编辑

2020年8月11日

摘要: 本篇用到的数据,链接:https://pan.baidu.com/s/1DVr3Ke7jfz3dQzXwz4BjGg 提取码:v8fo #logistic逻辑回归、最优化算法 ''' 下面主要说下 sigmoid函数和logistic回归分类器 最优化理论初步 梯度下降最优化算法 数据中的缺失项处理 阅读全文

posted @ 2020-08-11 15:44 wsg_blog 阅读(696) 评论(0) 推荐(0) 编辑