卷不过也不想跑路
码龄6年
关注
提问 私信
  • 博客:15,939
    15,939
    总访问量
  • 13
    原创
  • 2,077,752
    排名
  • 9
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2019-03-05
博客简介:

Sherlockfei的博客

查看详细资料
个人成就
  • 获得15次点赞
  • 内容获得6次评论
  • 获得37次收藏
创作历程
  • 6篇
    2021年
  • 7篇
    2020年
成就勋章
TA的专栏
  • 算法
    8篇
  • 实用
    1篇
兴趣领域 设置
  • 开发工具
    vscode
  • 云平台
    云计算
  • 运维
    docker
  • 服务器
    linux
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

180人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

拓扑排序 C语言实现---图论

算法思想计算每个节点的入度,每轮输出入度为零的节点,并且将已经输出的节点从图中删除。即,将该节点指向的节点入度减一;在实现上,维护一个入度数组,保存每个节点的入度,每一轮将入度为零的节点入栈(这里用队列也可以,只是作为存储入度为零的节点并且规定他们之间的输出顺序),并将他们指向的节点入度减一。代码实现以邻接矩阵存储图结构为例,代码如下(伪代码,栈或队列需要实现)#define MAX_VEXNUM 100typedef struct{ int vex[MAX_VEXNUM];
原创
发布博客 2021.11.01 ·
376 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Floyd算法 C语言实现

算法思想维护一个当前最短举例矩阵lowcost,lowcost[i][j]表示当前从i到j的最短距离,初始为图的邻接矩阵,此后对该矩阵进行n(图中节点的个数)次迭代,第k次迭代的过程为,对lowcost[i][j]进行更新,考虑从节点i到节点j经过第k个节点,距离是否减小,若减小,则更新lowcost矩阵,具体为比较lowcost[i][k]+lowcost[k][j]与lowcost[i][j],并且用path[i][j]将路径保存代码#define MAX_VEXNUM 100typedef s
原创
发布博客 2021.10.29 ·
526 阅读 ·
2 点赞 ·
0 评论 ·
2 收藏

Dijkstra算法 C语言实现---数据结构图论算法

算法思想维护三个数组,一个visited数组,表示是否已经划入最短路径一个lowcost数组,表示从初始节点到达各个节点的最小代价一个path数组,用来存放最短路径,path[i]代表节点i的前驱节点,根据不断寻找前驱节点可以描述整个路径。思想类似于Prim算法,使用贪心的策略,每次从lowcost数组中选择最小值归入最短路径,并且根据已经并入的节点更新lowcost数组,具体细节可见代码。代码使用临界矩阵存储为例,代码如下#define MAX_VEXNUM 100typedef s
原创
发布博客 2021.10.25 ·
666 阅读 ·
2 点赞 ·
0 评论 ·
4 收藏

C语言实现Prim算法

C语言实现Prim算法话不多说,思想简单,直接上代码维护两个数组。一个lowcost数组,表示当前已经归入最小生成树的结点集合与未归入的集合节点之间的最小代价;一个visited数组,表示是否已经归入最小生成树每次从lowcost数组中找到未归入最小生成树但代价最小的节点,将之归入最小生成树,之后根据归入的新节点更新lowcost数组直到所有节点全部归入最小生成树,算法结束;下例用未压缩的邻接矩阵存储图话不多说,思想简单,直接上代码#define MAX_VEXNUM 100typedef
原创
发布博客 2021.10.24 ·
4915 阅读 ·
2 点赞 ·
2 评论 ·
12 收藏

动态规划法 最长公共子串 golang

思想创建数组array[i][j]代表text1中以text[i]为首字母的字符串与text2中以text2[j]为首字母的字符串匹配的最大长度得到递推公式array[i][j]=array[i+1][j+1] (text1[i]==text2[j])array[i][j]=0 (text1[i]!=text2[j])首先处理边界当字符串长度为1的时候,只有text1[i]==text2[j],array[i][j]=1,否则为0代码package mainimport "fmt"f
原创
发布博客 2021.03.19 ·
360 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

剑指 Offer 13. 机器人的运动范围 go语言

题目要求地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子?提示1 <= n,m <= 1000 <= k <= 20go
原创
发布博客 2021.03.07 ·
226 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

添加右键菜单-在vscode中打开

第一种方法建立一个文本文件,写入如下的文本Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\*\shell\VSCode]@="Open with Code""Icon"="C:\\Program Files (x86)\\Microsoft VS Code\\Code.exe"[HKEY_CLASSES_ROOT\*\shell\VSCode\command]@="\"C:\\Program Files (x86)\\Micro
原创
发布博客 2020.09.27 ·
677 阅读 ·
1 点赞 ·
1 评论 ·
0 收藏

队列的数组及链表实现,C语言代码

数组实现基本思想用线性表实现队列如图所示:队尾指向最后一个数据元素的后一个位置,所以front==rear代表队列为空在队尾插入元素,在队头取元素,一般我们用这个结构实现循环队列,取元素时front=(front+1)%Size,插入元素使用rear=(rear+1)%Size,由于是循环队列,所以队列满的条件也变为了rear==ront为了解决这个问题,我们将队列中闲置一个元素,将rear...
原创
发布博客 2020.04.06 ·
272 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

栈的定义以及基本操作C语言实现--线性栈和链式栈

栈的定义以及基本操作C语言实现栈本身就是线性表,只不过是操作受限制,数据元素后进后出用顺序表表示栈栈的声明#define InitSize 5#define Elemtype int#define Status int#define OK 1//返回的操作结果,比如某个操作是否成功#definw OVERFLOW -1#define ERROR -1typedef stru...
原创
发布博客 2020.04.05 ·
287 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

栈的应用C语言实现(一),中缀表达式转后缀表达式

一、进制转换使用辗转相除法作进制转换,比如下面的十进制转二进制void Base_conversion(int num){//将num转化为二进制输出 int temp,e; Stack S; InitStack(&S); while(num){ temp=num%2; PushStack(&S,temp); ...
原创
发布博客 2020.04.01 ·
981 阅读 ·
1 点赞 ·
2 评论 ·
3 收藏

定点数的编码表示

定点数的编码表示最常见的有原码、反码、补码、移码四种编码方式原码常用来表示浮点数的尾数最高位是符号位,数值部分用真值的绝对值表示反码直接是原码的按位取反,在求补码的过程中会用到反码,纯粹是为了硬件容易实现补码用来表示定点整数补码的来源------模运算一个负数的补码等于模数减去该负数的绝对值,当X<0时,[X]=M-|X|=M+X,(这里的M表示模数,[X...
原创
发布博客 2020.03.24 ·
3591 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

线性链表的合并

一、将所有在Lb中,不在La中的数据元素插入到La中int LocateElem(List *head,int e){//查找在链表中有没有数据域是e的节点,有的话返回1,否则0 List *p=head->next; while(p){ if(p->data==e) return 1; } return 0;...
原创
发布博客 2020.03.20 ·
2002 阅读 ·
2 点赞 ·
1 评论 ·
13 收藏

关于fgetc,getc,getchar和scanf的一些小知识

在C语言中,一个char类型的字符可以用int型的数参照ASCII表来表示,比如char ch = 49;printf("%c", ch);这段代码会输出1,因为字符**‘1’**对应的ASCII就是49getchar的声明如下int getchar(void)即读入字符按照char类型处理,而返回值则是这个char类型的数据对应的int值,与scanf不同,scanf可以指定输入...
原创
发布博客 2020.03.06 ·
1056 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏