0%

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

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

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

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

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

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

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

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

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

当时为了增长业余知识,在MOOC上听完了中国农业大学的计算机图形学这门课,后面几章的方程没有听,仅仅听到了三维变换。这是当时的电子版笔记,后来发现电子版笔记是真的累人,累倒有的笔记都不想放上来了。这是第一次,也是最后一次。

当然感觉这些东西还是挺有意思的,就准备放上来。如果你是华北理工大学的学生选了这门课,把这个网页里的内容看完85+也没问题了(缺少二维变换的例题,主要是太长了,真懒的写了。还有一些基础概念靠自己的悟性了)。

假期实在无聊,开始整理过去的文件,发现了自己原来是数学建模起家的。长话短说,翻阅了在过去时间里自己做过的模拟题,所有的模型是自己设计的,代码也是自己写的。而倾注了自己心血的东西,难免会有些有意思的地方。比如:

  • 数据缺失,如何去除,如何补充,哪些去除,哪些补充,都是有学问的;
  • 另外就是今天的主角,元胞自动机——万物皆可模拟。

另一方面是,当初在学习元胞自动机这个模型时,网上的资料是在少之又少,且内容凌乱的不堪入目,我猜作者也不知道他在写啥,自己也走了很多弯路。遂决定,以实战的背景,演示元胞自动机的工作原理和使用方法。而在看本文之前,你只需要知道元胞自动机里面有很多格子,格子间通过某种规则相互影响即可。

耗时4个月主要是我懒老拖着,终于大概算写完了这款软件吧,也是我第一次写这么大的软件。从入门学习GUI,到自己写,到数据库,到部署,到处都是知识盲区,主要是自己太垃圾了

部署服务器,反向代理,防火墙开放端口,数据库操作,自动化测试,系统日志等等等等,一切对我来说都是茫然的,自己还很菜,要走的路还很长。事实证明,参加比赛之后,还是要回归工程,学以致用,大学专业课的知识还是有用的啊。如计算机网络,如数据库等,很遗憾我学的并不好,都是后期现学现查。

此项目的代码都在github上,是我的私人仓库,如果你想继续本软件的开发(pyqt5+sqlalchemy+alembic),可以联系我,到时候在邀请你。

数据表并不是一成不变的,添加新的模型类或者给已有的模型类添加删除属性都是很正常的事情,此时都需要更新表。而只修改原有代码的表,重新部署是不能生效的,原因是那个表已经存在了。

举一个苛刻的例子:你的老板说,我们不要时间戳这个属性,你说好,写好代码并用了一年。一年后,你的老板说,把时间戳给我加上。这就涉及到了数据库的迁移。但是又不想:拷贝原有数据、重新建表、复制数据这样的更新,这种工作量很大很累赘,且数据是无价的,所以学会数据库迁移很有必要。

我想起了一个培训班来我们学校上课,说:公司不会给你重启服务器,所以一定要保证一次性把表写对不能更爱,呵,怪不得你的水平也只能来我校讲课。