
算法
文章平均质量分 93
yuanfz1998
这个作者很懒,什么都没留下…
展开
-
TVM Relay softmax算子调度分析
tvm relay 算子调度分析原创 2022-08-05 23:32:24 · 779 阅读 · 0 评论 -
【新手向】后缀数组(Suffix Array),二分查找字符串(Binary Search)和lower_bound+comparator的深入理解
定义一个通过对字符串的所有后缀经过排序后得到的数组。此数据结构被运用于全文索引、数据压缩算法、以及生物信息学。简单来说,对于一个给定字符串strstrstr, 我们拥有一个数组SA(Suffix Array的缩写),数组对于每个索引 i=[0,1,2,...strlen(str)−1]i = [0, 1,2,...strlen(str) - 1]i=[0,1,2,...strlen(str)−1], SA[i]SA[i]SA[i]表示将所有后缀排序后第 iii 小的后缀的编号。举个栗子:str =原创 2020-06-16 22:46:14 · 1618 阅读 · 0 评论 -
【C++】 位运算小结
取最靠右的11. 移位遍历1 << i 在这里充当了一个指针。 int right_most_setbit(int num) { for (int i = 0; i < 32; i++) { if (!(num & (1 << i))) return 1 << i; } return 0; }2. 利用特性利用负数的bi原创 2020-06-12 22:15:17 · 831 阅读 · 0 评论 -
【二叉树】【经典例题及解答】用栈(Stack)对二叉树(Binary Tree)进行前序(Pre)、中序(In)、后序(Post)非递归遍历
定义在计算机科学中,二叉树(英语:Binary tree)是每个节点最多只有两个分支(即不存在分支度大于2的节点)的树结构。通常分支被称作“左子树”或“右子树”。堆栈(英语:stack)又称为栈或堆叠,是计算机科学中的一种抽象数据类型,只允许在有序的线性数据集合的一端(称为堆栈顶端,英语:top)进行加入数据(英语:push)和移除数据(英语:pop)的运算。因而按照后进先出(LIFO, Last In First Out)的原理运作。Inorder/中序遍历 (Left, Root, Ri原创 2020-06-06 16:44:41 · 408 阅读 · 0 评论 -
【深度优先搜索】递归、穷举与优化(Memorization)经典题目与C++解答
概念深度优先搜索算法(Depth-First-Search,DFS)是一种用于遍历或搜索树或图的算法。 这个算法会尽可能深的搜索树的分支。 当节点v的所在边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。 这一过程一直进行到已发现从源节点可达的所有节点为止。DFS,根据题目的要求,适用于需要穷举所有可能性的情况。一般来说比较易于理解但是算法速度较慢,一般为指数时间,但加以合理的缓存优化(Memorization)可以以牺牲内存为代价提高速度。题目题目来源于LeetCode494. Ta原创 2020-06-05 21:07:57 · 401 阅读 · 0 评论 -
【常数时间】LFU(Least Frequently Used)基于频次的缓存淘汰算法C++实现
struct LFUNode{ int freq; list<pair<int, int>> vals; LFUNode(int f = 0) : freq(f) { }};typedef list<LFUNode>::iterator iptr;typedef list<pair<int, int>>::iterator jptr;class LFUCache {public: LFUCache(int capacit原创 2020-05-14 03:07:44 · 318 阅读 · 0 评论 -
【常数时间】LRU(Least Recently Used)最近最少使用算法设计C++实现
#include<vector>#include<unordered_map>#include<string>#include<unordered_set>#include<map>#include<iostream>using namespace std;class LRUCache {public: LRUCache(int capacity) { cap = capacity; } int get(i原创 2020-05-14 03:03:50 · 297 阅读 · 0 评论 -
Heap(栈、priority_queue、优先队列)原理、C++实现及应用
原理定义A heap is a specialized tree-based data structure which is essentially an almost complete tree that satisfies the heap property: in a max heap, for any given node C, if P is a parent node of C, then the key (the value) of P is greater than or equal原创 2020-05-10 19:19:38 · 619 阅读 · 0 评论 -
Trie( prefix tree ) 原理、C++实现及应用
Trie( prefix tree ) C++ 实现题目来源于LeetCode, 代码上传后测试通过使用shared_ptr,构建数据结构,在一定程度上减少memory leak#include "stdafx.h"#include<iostream>#include<memory>#include<algorithm>#define ALPHABET_SIZE 26class Trie {public: bool isEnd; unique_p原创 2020-05-08 20:45:57 · 307 阅读 · 0 评论