算法/数据结构
文章平均质量分 95
夜若渊
勤能补拙
展开
-
算法与数据结构 面试知识点大全【持续更新中】(校招/社招/实习/大厂/面试)
IT开发岗笔试/面试 常考的知识点,大部分为本人手打,请多多支持原创 2022-07-03 20:29:58 · 764 阅读 · 0 评论 -
快速幂(Fast Power)算法简析
快速幂: 快速计算底数的n次幂时间复杂度: O(log₂N)要计算乘幂,我们一般就直接这样写: double myPow(double x, int n) { double ans=1; int flag = 0; if(n<0) {n=-n; flag=1;} for(int i=1;i<=n;i++) ans*=x; if(flag) ans=1/ans; retu原创 2020-05-11 12:38:11 · 649 阅读 · 0 评论 -
C++ 链表 (linked list)
链表的概念链表,顾名思义,是以链状形式存储的一系列数据。链状结构的特点是环环相扣从一个节点只能走到相邻的下一个节点。链表中的每个节点我们一般用一个结构体来表示,每个节点实际存储位置在内存中是随机的,而不一定是顺序的。我们可以把链表的节点想象成购物商场的储物柜。商场里有很多储物柜,一个储物柜就像一个链表节点:struct ListNode{ int data;} A;储物柜上的编号...原创 2020-03-05 12:45:15 · 2027 阅读 · 0 评论 -
常见数据结构的C语言实现
#include <stdio.h>int main(){ int team[10]={0}; int head=0; int tail=0; team[tail++]=1; //在队列尾部插入元素,同时尾部索引后移 team[tail++]=2; team[tail++]=3; head++; ...原创 2020-02-28 12:06:36 · 749 阅读 · 0 评论 -
C++ 算法题解 (1)
n个人围成圈,依次报数,每次数到m的人淘汰,求最后剩下的人双向链表实现:#include <cstdio>#include <iostream>using namespace std;const int MAX = 100 + 10;int a[MAX],b[MAX];int main(){ int m,n; cin >> n...原创 2020-02-16 12:21:51 · 500 阅读 · 0 评论 -
二叉树(Binary Tree)
概念二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)因为每个节点最多只能有两个子节点,一颗深度为k的二叉树最大节点数为1+2+22+23+…+2k-1 = 2k-1相关术语Root The top node in a tree. 根 树的顶端结点 Child A node d...原创 2019-12-03 09:48:27 · 495 阅读 · 0 评论 -
SPFA算法 (Shortest Path Faster Algorithm)
SPFA 算法是 Bellman-Ford算法 的队列优化算法的别称,通常用于求含负权边的单源最短路径,以及判负权环。SPFA 最坏情况下复杂度和朴素 Bellman-Ford 相同,为 O(VE)。下面是一个无向图的示例程序#include <cstdio>#include <queue>#include <iostream>using name...原创 2019-11-25 21:54:07 · 209 阅读 · 0 评论 -
排序算法(Sorting Algorithm)
排序算法所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。排序算法在很多领域得到相当地重视,尤其是在大量数据的处理方面。一个优秀的算法可以节省大量的资源。在各个领域中考虑到数据的各种限制和规范,要得到一个符合实际的优秀算法,得经过大量的推理和分析。1.快速排序算法排序步骤在当前区域(记为area)...原创 2019-11-16 14:41:45 · 521 阅读 · 0 评论