作为一个程序员,我发现我不会写多进程和多线程的程序,实在羞愧,在赶完毕业设计后准备开一个多线程编程的坑。本文是我这种小白从无到有的学习收获,内容较多,还请耐心观看。因疫情原因没在学校,手头没有一本靠谱的《操作系统》的书籍,大多东西为网上搜刮而来后整理,可能不严谨。今天有空了回来填坑。
修复双系统切换导致V2Ray无法使用的问题
本文字数: 877 阅读时长 ≈ 1 分钟
在给系统安装Linux
后,也配置了V2Ray
。但发现了一个问题:
- 之前
windows
使用V2Ray
是没有任何问题的; Linux
使用V2Ray
也是没有任何问题的;- 但是,从
Linux
切换回windows
,windows
的V2Ray
就不能用了,得关机、重启、过一段时间才能用。
本文给出此类问题的修复方法。
一些不常见的进阶博客优化
本文字数: 2.6k 阅读时长 ≈ 2 分钟
首先,如果你是想来搭建博客的小白,那么这篇文章不适合你,这篇文章写的优化博客是一些进阶操作。常见的:文章字体、打赏按钮、图片加载、数学公式、音乐链接、不蒜子统计等等等等,网上一搜一大把的我都认为是常规设置,本文在详细描述。而本文收录的进阶优化有:
- 降低网页功耗
- 快速加载博客
此外,本次优化仅针对next
主题,但其他主题也可参考借鉴优化思路,只是操作方法不敢保证完全一致。
简易理解算法时间复杂度的重要性
本文字数: 9.6k 阅读时长 ≈ 9 分钟
本来是被老师安排了写毕业论文的,但是歪打正着发现了个有趣的东西,决定先更新一下再去写(毕竟谁闲的没事想写那两万字的论文)。
- 通过两个新旧CPU的对比分析算法时间复杂度的重要性;
- 以顺序结构实现 插入排序 算法(非正解),时间复杂度$O(n^3)$;
- 以链式结构(双向链表)实现 插入排序 算法,时间复杂度$O(n^2)$;
- 对比两者,分析时间复杂度的影响。
首先,默认本文的读者有数据结构的基础,或者从任何一本《数据结构》教材里寻找:时间复杂度、插入排序、双向链表的定义。对于外行人(数据结构基础四舍五入等于没有或者只想来看热闹),可以选择只看本文你能看懂得部分,同样很有意思。
树的遍历算法及常见衍生问题的归纳整理
本文字数: 8.2k 阅读时长 ≈ 7 分钟
树是数据结构中很重要的一种结构,在现实生活中常用于表达层次关系和非单一的映射关系,如一个老板下对应有多个员工。通过一段时间的算法练习,本文将树常见的算法收录整理,包括:
- 求二叉树叶子节点的数量
- 求节点权重和
- 求距离根节点最近、最远的叶节点
- 求每一层节点的数量
- 遍历二叉树,求给定权值的路径
- 二叉查找树
而对于红黑树、2-3-4树等较为复杂的树结构,本文暂时不收录,仅收录较为简单容易理解的,本文适用于:编程不太好、但了解基本数据结构的人,你仅仅需要知道深度优先遍历、广度优先遍历、二叉树的根节点、普通节点、叶子节点的区别即可。
图问题中的搜索算法
本文字数: 5.8k 阅读时长 ≈ 5 分钟
在面临一个搜索问题时,如找出一个矩阵中不一样的元素,可能大多人和我想的一样:几层for循环,变量自增继续访问下一个。看着简单,但是,当问题逐渐复杂,如搜索出矩阵中的元素,要求是这个元素和周围的元素不一样,要求相差超过某个阈值,此时在用for循环去写,遍历元素和元素周围的元素,便显得不够明智。
在搜索算法中,常用的为深度优先和广度优先。但是题目很少去单纯的考察搜索算法,搜索经常会和树、图的遍历一起使用,于是决定来总结一下图中的搜索算法,二叉树或多叉树中的搜索算法日后再说。
通用的子串匹配问题求解算法
本文字数: 2.3k 阅读时长 ≈ 2 分钟
19年夏天出去面试的时候,被考了一道子串匹配的问题。当时也没回答上来,当时的学长说可以用类似二叉树的方式去查找,一个分支走不通的时候开始回溯到另一个分支,当时实在是太饿了,大概只听懂了这些吧。今天在刷题的时候又再次遇到了这个题目,也想到了更为简易(时间复杂度$O(n)$)和通用的算法,记录于此。