算法
文章平均质量分 76
沐雨风栉
生活是一面镜子。你对它笑,它就对你笑;你对它哭,它也对你哭。
展开
-
协同过滤算法深入解析:构建智能推荐系统的核心技术
随着互联网的高速发展,我们每天面临着海量信息的冲击,从而使得我们无法有效地筛选出感兴趣的信息。在这种背景下,推荐系统应运而生,成为帮助用户过滤信息,找到自己感兴趣内容的有效工具。协同过滤算法作为推荐系统中的一种核心技术,广泛应用于电商、社交媒体、音乐、电影等多个领域,极大地改善了用户体验。本文将对协同过滤算法进行深入解析,让我们一起探讨这一神奇的技术。协同过滤算法(Collaborative Filtering, 简称 CF)是一种利用用户的历史行为数据预测用户未来行为的方法。原创 2023-05-04 12:53:12 · 1807 阅读 · 0 评论 -
算法设计与分析——递归循环
递归的定义若一个对象部分地包含它自己, 或用它自己给自己定义, 则称这个对象是递归的;若一个过程直接地或间接地调用自己, 则称这个过程是递归的过程。递归函数:一个直接调用自己或通过一系列调用语句间接调用自己的函数。递归的应用:数学函数:阶乘函数、2阶Fibonacci数列数据结构:二叉树、广义表八皇后、hanoi塔问题递归算法设计:将规模较大的原问题分解为一个或多个规模更小的与原问题类似的子问题-递归步骤(递归表达式)确定一个或多个无须分解可直接求解的子原创 2022-09-01 20:39:03 · 2352 阅读 · 0 评论 -
STL优先队列
一、相关定义优先队列容器与队列一样,只能从队尾插入元素,从队首删除元素。但是它有一个特性,就是队列中最大的元素总是位于队首,所以出队时,并非按照先进先出的原则进行,而是将当前队列中最大的元素出队。这点类似于给队列里的元素进行了由大到小的顺序排序。元素的比较规则默认按元素值由大到小排序,可以重载“<”操作符来重新定义比较规则。优先级队列可以用向量(vector)或双向队列(deque)来实现(注意list container不能用来实现queue,因为list的迭代器不是任意存取iterator,而原创 2021-10-22 15:38:57 · 369 阅读 · 0 评论 -
常用STL总结
1.vector有迭代器 可随机访问vector x; int t;vector初始化:vectora(10);vectora(10,1);vectora(b); //b为vectorvectora(b.begin(),b.begin+3); //b为vectorint b[7]={1,2,3,4,5,6,7};vector a(b,b+7);x.push_back(t); //把t插入到x的尾部x.pop(); // 删除x的最后一个元素x,empty(); // x是否原创 2021-09-07 13:58:34 · 233 阅读 · 0 评论 -
图论——最小生成树(Prim算法,Kruskal算法及常用模板)
最小生成树算法——Prim 算法(普⾥姆)Prim代码模板例题 POJ - 1258 Agri-NetAC代码最小生成树算法——Kruskal 算法(克鲁斯卡尔)Kruskal代码模板例题 POJ - 1287 NetworkingAC代码最小生成树算法——Prim 算法(普⾥姆)从某⼀个顶点开始构建⽣成树;每次将代价最⼩的新顶点纳⼊⽣成树,直到所有顶点都纳⼊为⽌。算法描述:在一个加权连通图中,顶点集合C,边集合为E任意选出一个点作为初始顶点,标记为✔,计算所有与之相连接的点的距离,选择距离最.原创 2021-07-26 21:52:37 · 1283 阅读 · 0 评论 -
三种常用的排序方法图解及C语言实现(选择排序,冒泡排序,快速排序)
选择排序冒泡排序桶排序快速排序原创 2021-01-27 23:00:33 · 1092 阅读 · 0 评论 -
DFS和BFS(含常用模板)
DFS(深度优先搜索)其实就是暴力把所有的路径都搜索出来,它运用了回溯,保存这次的位置,深入搜索,都搜索完了便回溯回来,搜下一个位置,直到把所有最深位置都搜一遍,要注意的一点是,搜索的时候有记录走过的位置,标记完后可能要改回来;回溯法是一种搜索法,按条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择达不到目标,就退回一步重新选择,这种走不通就退回再走的方法为回溯法;例如这张图,从1开始到2,之后到5,5不能再走了,退回2,到6,退回2退回1,到3,一直进行;常用的DFS模板:void原创 2021-01-23 15:15:17 · 1193 阅读 · 0 评论 -
大数(四则运算)
四则运算大数加法高精度加法大数减法大数乘法大数乘法(幂运算)大数乘法(高精度幂运算)大数除法大数加法思路:从后往前算(即由低位向高位运算),计算的结果依次添加到结果中去,最后将结果字符串反转。输入的时候两个数都是以字符串的形式输入的,测出每个字符串的长度(也就是该数的位数),因为字符串不能直接进行运算,所以测出长度之后将字符串形的数反向转化为整形数组的形式(例如输入两个数为100和10,转化为整形数组形式储存为001和01,让低位在前,是运算更方便),然后进行运算。要用到两个字符型数组来先保存输原创 2021-01-25 00:41:53 · 556 阅读 · 0 评论 -
STL:全排列 next_permutation(), prev_permutation()函数的用法
头文件<algorithm>next_permutation()函数功能是输出所有比当前排列大的排列,顺序是从小到大。prev_permutation()函数功能是输出所有比当前排列小的排列,顺序是从大到小。算法描述:从尾部开始往前寻找两个相邻的元素第1个元素i,第2个元素j(从前往后数的),且i<j2、再从尾往前找第一个大于i的元素k。将i、k对调3、[j,last)范围的元素置逆(颠倒排列)代码int a[];do{}while(next_permu原创 2021-01-24 13:03:16 · 189 阅读 · 0 评论