之前针对《编程珠玑》的排序算法章节写了一篇博文,采用了3中不同的划分算法来实现快速排序。最后的一个划分方式是使用“宽支点”划分法,即把待排序数组分成、和三个部分,但是最后取得的效果却差强人意。结合之前的分析,这两天在闲暇的时候想到了改进的方法,代码实现出来发现性能确实得到了改善,所以写出来做一个记录。
STL容器list的底层实现---带头结点的双向循环链表
前天看了一篇介绍STL中的list
容器的文章,但是文章中只是简单的介绍说list是一个双向链表。其实list
的底层实现是带头结点的双向循环链表。文章中我也利用模版编程实现了包含绝大部分list
的功能的带头结点的双向循环链表,并且经过测试发现性能要比list
优秀一些。
graph LR; 0[header] --next--> 1[0]; 0[header] --previous--> 5[4]; 1[0] --previous--> 0[header]; 1[0] --next--> 2[1]; 2[1] --previous--> 1[0]; 2[1] --next--> 3[2]; 3[2] --previous--> 2[1]; 3[2] --next--> 4[3]; 4[3] --previous--> 3[2]; 4[3] --next--> 5[4]; 5[4] -- previous--> 4[3]; 5[4] --next--> 0[header];
MacOS下Git报错xcrun:error:invalid active developer path
今天把Mac的系统从Mojave
升级到了Catalina
,然而在我兴高采烈地试用时突然发现git
命令出现了报错,具体信息如下:
1 | xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun |
简单来说,就是我的命令行开发路径下缺少了一些东西!
Next主题博客修改底部前后文章链接显示顺序
今天无意间发现Next主题博客在底部的前后文章链接给出的顺序与我们习惯的顺序相反。它把后一篇文章的链接放在了左边,而把前一篇文章的链接放在了右边,可以见下面给出的截图。我在源码中修改了链接的顺序,今天做了一个小分享。
VS-Code、JeBrains系列编辑器安装微软开源字体Cascadia-Code
前段时间微软在GitHub上开源了一款号称程序员专属
的等宽字体,最让我觉得有趣还是它提供的编程连字
功能,可以显示出在数学公式上的一些符号,总体用起来还是比较舒服的。 下面两张图是官方提供的展示图。
C/C++ 从sizeof运算符到内存对齐
前两天看到了一个有关sizeof
运算符和内存对齐
的问题,然后花了半天时间一直在查资料和思考。现在准备来填上这个坑了。
Next主题优化:添加DaoVoice在线聊天、文章结束标记、自定义底部版权信息
之前博客都在使用Yilia主题,可是心里一直对页面简洁、美观,并且功能配置多、社区强大的Next主题念念不忘,所以用了几天时间把博客更换成了Next主题。因为好多配置已经集成在了最新版本中,我们只需要在主题文件夹下的_config.yml
文件中设置即可。本文主要介绍如何添加DaoVoice在线聊天、文章结束标记、自定义底部版权信息。
Hexo增加访问速度:同时部署到Github和Coding
因为之前的Blog都是部署到Github上的,而它的服务器都是在国外的,所以访问速度有时会很慢。而Coding(腾讯云开发者平台)的服务器是在国内的。
现在通过同时部署到Github和Coding上的方法,使得国内访问者可以通过Coding的服务访问,而国外访问者通过GitHub的服务访问。