0%

作为一个程序员,我发现我不会写多进程和多线程的程序,实在羞愧,在赶完毕业设计后准备开一个多线程编程的坑。本文是我这种小白从无到有的学习收获,内容较多,还请耐心观看。因疫情原因没在学校,手头没有一本靠谱的《操作系统》的书籍,大多东西为网上搜刮而来后整理,可能不严谨。今天有空了回来填坑。

在给系统安装Linux后,也配置了V2Ray。但发现了一个问题:

  • 之前windows使用V2Ray是没有任何问题的;
  • Linux使用V2Ray也是没有任何问题的;
  • 但是,从Linux切换回windowswindowsV2Ray就不能用了,得关机、重启、过一段时间才能用。

本文给出此类问题的修复方法。

首先,如果你是想来搭建博客的小白,那么这篇文章不适合你,这篇文章写的优化博客是一些进阶操作。常见的:文章字体、打赏按钮、图片加载、数学公式、音乐链接、不蒜子统计等等等等,网上一搜一大把的我都认为是常规设置,本文在详细描述。而本文收录的进阶优化有:

  • 降低网页功耗
  • 快速加载博客

此外,本次优化仅针对next主题,但其他主题也可参考借鉴优化思路,只是操作方法不敢保证完全一致。

本来是被老师安排了写毕业论文的,但是歪打正着发现了个有趣的东西,决定先更新一下再去写(毕竟谁闲的没事想写那两万字的论文)。

  • 通过两个新旧CPU的对比分析算法时间复杂度的重要性;
  • 以顺序结构实现 插入排序 算法(非正解),时间复杂度$O(n^3)$;
  • 以链式结构(双向链表)实现 插入排序 算法,时间复杂度$O(n^2)$;
  • 对比两者,分析时间复杂度的影响。

首先,默认本文的读者有数据结构的基础,或者从任何一本《数据结构》教材里寻找:时间复杂度、插入排序、双向链表的定义。对于外行人(数据结构基础四舍五入等于没有或者只想来看热闹),可以选择只看本文你能看懂得部分,同样很有意思。

树是数据结构中很重要的一种结构,在现实生活中常用于表达层次关系和非单一的映射关系,如一个老板下对应有多个员工。通过一段时间的算法练习,本文将树常见的算法收录整理,包括:

  • 求二叉树叶子节点的数量
  • 求节点权重和
  • 求距离根节点最近、最远的叶节点
  • 求每一层节点的数量
  • 遍历二叉树,求给定权值的路径
  • 二叉查找树

而对于红黑树、2-3-4树等较为复杂的树结构,本文暂时不收录,仅收录较为简单容易理解的,本文适用于:编程不太好、但了解基本数据结构的人,你仅仅需要知道深度优先遍历、广度优先遍历、二叉树的根节点、普通节点、叶子节点的区别即可。

在面临一个搜索问题时,如找出一个矩阵中不一样的元素,可能大多人和我想的一样:几层for循环,变量自增继续访问下一个。看着简单,但是,当问题逐渐复杂,如搜索出矩阵中的元素,要求是这个元素和周围的元素不一样,要求相差超过某个阈值,此时在用for循环去写,遍历元素和元素周围的元素,便显得不够明智。

在搜索算法中,常用的为深度优先和广度优先。但是题目很少去单纯的考察搜索算法,搜索经常会和树、图的遍历一起使用,于是决定来总结一下图中的搜索算法,二叉树或多叉树中的搜索算法日后再说。

19年夏天出去面试的时候,被考了一道子串匹配的问题。当时也没回答上来,当时的学长说可以用类似二叉树的方式去查找,一个分支走不通的时候开始回溯到另一个分支,当时实在是太饿了,大概只听懂了这些吧。今天在刷题的时候又再次遇到了这个题目,也想到了更为简易(时间复杂度$O(n)$)和通用的算法,记录于此。