
算法
文章平均质量分 96
小牛_牛sky
学海无涯
展开
-
Personal Rank算法的原理及实现
1.简介PageRank[1]是Google创始人拉里·佩奇和谢尔盖·布林于1997提出的用于客观评价网页的重要度的方法,最初的PageRank算法是主题无关的,它不依赖于任何特定的搜索查询。为了得到主题相关的搜索结果,Haveliwala提出主题敏感的PageRank方法,称为PersonalRank[2],该方法用于在二分图中为用户进行推荐。二分图又称为二部图,是图论中的一种特殊模型,设G=(V,E) 是一个图,如果顶点V可分割为两个互不相交的子集(A, B),并且图中的每条边(i, j)所关联的两原创 2021-07-04 10:57:16 · 2688 阅读 · 6 评论 -
分治法
1.分治法分治法的基本思想就是将一个规模为n的问题分解成k个规模较小的子问题,而、这些子问题相互独立且与原问题相同;子问题的解合并后可以得到原问题的解。它的一般的算法设计模式如下:divide-and-conquer(P){ if (|P| <= n0) adhoc(P) divide P into smaller subinstances P1, p2, ......原创 2019-08-03 09:32:04 · 1132 阅读 · 0 评论 -
LeetCode题目-合并K个排序链表
合并K个排序链表是我在刷LeetCode的时候遇到的题目,描述大致如下:合并k个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->6一开始的思路是类似于合并两个有序链表的思路,就...原创 2019-08-01 21:51:48 · 198 阅读 · 3 评论 -
排序算法
1.插入排序插入排序是比较简单粗暴的排序算法之一,它的思路大致如下:把待排序数组分成两部分,长度为1和长度为n-1的子数组,(长度为1的子数组此时已经是排序好的) 从第二个数组中按序拿出一个元素,并插入到第一个子数组的合适位置,使得第一个子数组依然是排好序的 重复步骤2,直至排序完成。它的代码相对也比较简单,如下:/** * 插入排序 * @param nums: 待排序数...原创 2019-08-08 20:24:03 · 204 阅读 · 0 评论 -
矩阵连乘
1.两个矩阵乘积所需要的计算量首先需要考虑计算两个矩阵的乘积所需要的计算量。矩阵A和矩阵B可乘的条件是A的列数等于B的行数。如果A是一个p*q矩阵,B是一个q*r矩阵,那么AB的乘积C则是一个p*r矩阵。大致代码如下:#include <iostream>using namespace std;/*两个矩阵乘法的标准算法*/void matrixMultip...原创 2019-08-13 21:31:15 · 2797 阅读 · 0 评论 -
求第k小元素
题目:给定线性序集中n个元素和一个整数k,其中1<=k<=n,要求找出这n个元素中第k小的元素。如果将这n个元素线性序排列时,如果不存在重复的数或者求第k个元素的时候,那么第k个位置即为要找的元素。当k = 1时,要找的就是最小值;而当k = n时,则要找的则是最大值。凭借着快速排序中的划分函数,可以实现上面的功能。对于序列a[p : q],分治算法rando...原创 2019-08-09 20:51:21 · 4116 阅读 · 0 评论 -
分治法-合并排序
1.合并排序排序算法是对一组数进行顺序排序或者逆序排序,而合并排序就是排序算法的一种。合并排序用到了分治策略实现对元素进行排序。合并排序的基本思想:把待排序的n个元素分解成n组,也就是每组一个元素;之后对分好的组进行两两合并(无配对的则不操作),以此类推。以序列{8, 3, 2, 6, 7, 1, 5, 4}为例,排序过程如下:排序过程图片来源合并排序又叫做2-路归并排序...原创 2019-08-07 20:13:02 · 8148 阅读 · 7 评论 -
分治法-快速排序
1.快速排序快速排序是冒泡排序的一种改进,它平均的时间复杂度为O(nlng)。快速排序的思路如下:对于输入的数组a[p: r]分解:以a[p]作为基准值,将数组分为三段 a[p:q-1] a[q]和a[q+1: r],并且满足a[p: q-1]的值小于等于a[q],而a[q+1:r]的值大于等于a[q]。下标q在划分过程中确定。 递归:递归调用快速排序分别对a[p:q-1]和a[q+...原创 2019-08-07 21:40:16 · 1094 阅读 · 0 评论 -
最长公共子序列
1.定义给定一个序列,在删去若干个元素后得到的序列即为子序列。图1 子序列如图1所示,序列{A, B, C, B, D, A, B}的其中一个子序列就是{B, C, B, A}。图2 公共子序列如图2,序列{A, B, C, B, D, A, B}和序列{B, D, C, A, B, A}的其中一个子序列就是{B, C, B, A},并且这个公共子序列是最长公共子序列(不唯一)...原创 2019-09-11 09:39:33 · 561 阅读 · 0 评论