排序笔记
排序分为两种,一种是基于比较的排序,如插入排序、快速排序、归并排序等等,这类算法比较常见,但他们的时间复杂度都无法突破下界 O(nlgn)。
另外一种是非基于比较的算法,如计数排序、基数排序、桶排序,他们的时间复杂度可以达到 O(n),是因为算法假设了数据拥有某种分布特性,如范围,如均匀分布等等。
排序分为两种,一种是基于比较的排序,如插入排序、快速排序、归并排序等等,这类算法比较常见,但他们的时间复杂度都无法突破下界 O(nlgn)。
另外一种是非基于比较的算法,如计数排序、基数排序、桶排序,他们的时间复杂度可以达到 O(n),是因为算法假设了数据拥有某种分布特性,如范围,如均匀分布等等。
Go2Shell
从Finder某一个文件中快速打开 Iterm 并 cd 至此目录
(多了一个 Icon)
bat 无缝替换 cat
cat指令的增强,带高亮,带滚动
安装 brew install bat
exa 替换 ls
exa
安装 brew install exa
fzf 快速模糊搜寻器
安装 fzf 后,在命令行的任何地方按下 Ctrl + T,就可以开启交互式模糊搜索界面,递归搜索当前目录下的文件。或者 Ctrl + R,搜索历史命令。更多姿势自行搜索。
安装 brew install fzf
HTTPie —— curl的代替品
HTTPie 是一个更简单(不像 curl,每次使用都要 Google 下用法)、功能更多、更美观的 curl 替代品,可以在命令行调用 HTTP 的 API。
在使用过程中发现,其并不能完全用 alias 的方式代替 curl, 因为有很多参数,如 -i、-w 它都没有。
安装 brew install httpie
peco 交互式过滤
将任何命令的输出通过管道传给 peco,便能交互式地过滤输出,查找所需信息。你可以把它想成交互式 grep,随着输入实时更新结果,让搜索过程更直观。
安装: brew install peco
各种文件预览
1 | brew install qlcolorcode quicklook-json qlstephen suspicious-package provisionql quicklook-csv qlmarkdown |
rainbow-brackets
解决了嵌套元素大量重复中括号的烦恼,为每组左中括号和右中括号提供了各自的颜色,使跟踪代码块的起始和结束位置更加容易。
GitToolBox
显示谁在何时改变了行内的代码。
作为一棵二叉搜索树,那么最重要的就是如何保持自己的平衡,为了保持平衡,二叉搜索树们八仙过海各显神通,如AVL树、红黑树、Treap树、伸展树等等,但万变不离其宗,他们的方法都是基于旋转,然后更改节点间的关系。
尤其是一些二叉搜索树实现起来非常非常繁琐,像红黑树,增加和删除节点总共大约需要处理十来种情况,写完debug完估计天都已经黑了几次了。
而替罪羊树就是一棵与众不同的树,当遇见不平衡的情况时,不会想法子调整平衡,直接对她进行暴力重建。
作为十几年学生生涯的华丽谢幕,一场毕业旅行是必不可少的。
一直想去广袤无垠的大草原,去骑马,去吃烤全羊,去喝马奶酒,所以计划原本是呼伦贝尔大草原。招呼了顾同学想一起,只不过来回机票太贵,而且距离他的起点南京非常远,再加上烤全羊什么的,超出了预算,于是作罢。
后来,又想起了皖南线。这是一条美丽的骑行线路,别称小川藏线,这条线路我和我弟一年前就想去骑行,只不过因为有事而耽搁了。这次和他说了,欣然同意。于是又去和顾同学说了这个的计划,虽然哭穷,但他也很快就加入了这个计划。
Treap = Tree + Heap
Treap树是一种较为简单的二叉查找树,同时也是一种平衡树,她是在BST(二叉搜索树)的基础上添加了一个修正值,在满足BST的性质上,Treap树节点的修正值还满足最小堆性质,最小堆也就是小根堆,根节点的值最小,左右孩子的节点的值都比父节点大。
修正值是在插入一个节点时随机生成的一个值,和插入的值无关。
一棵Treap树具有以下性质
在开发admin后台时,因需要,将项目拆解成两个模块,一是持久层,只对数据库进行查询更新等操作,另外一个模块依赖持久层,所有对数据库的操作都必须经过持久层。