30分钟了解正则

转自 作者:deerchao

本文目标

30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。

如何使用本教程

最重要的是——请给我30分钟,如果你没有使用正则表达式的经验,请不要试图在30内入门——除非你是超人 🙂

继续阅读30分钟了解正则

关于Virtual Box虚拟机里的系统不能启动的解决方法

当我们的虚拟机在非正常关闭后,再次启动机器时,Virtual Box会出现 Runtime error opening ‘C:\Users\admin\VirtualBox VMs\Windows Server\Windows Server.vbox for reading: -102 (File not found.).提示。

虚拟电脑非正常关闭,造成一些日志无法记录,有可能在下次启动虚拟机的时候无法使用里面的系统,一般会提示找不到一个文件,并告诉你这个文件的路径。你顺着这个路径找下去例如我的就是“’C:\Users\admin\VirtualBox VMs\Windows Server\”这个文件夹下有个Windows Server.vbox-tmp,而虚拟机提示的是缺少Windows Server.vbox这个文件,那么F2重命名把-tmp删掉就行了,重命名后这个文件会显示一个方块的图标。

最后去启动虚拟机里的系统就行了!!!

(hash)哈希表的构造方法和冲突解决方法

哈希表又称为散列表(hash)是一种数据结构,它可以提供快速的插入操作和查找操作。第一次接触哈希表时,它的优点多得让人难以置信。不论哈希表中有多少数据,插入和删除(有时包括侧除)时间复杂度仅为0(1)。

主要有六种构造方法

1、直接定址法

取关键字或关键字的某个线性函数为Hash地址,即H(key)=key或者H(key)=a*key+b,a、b都为常数。

2、数字分析法

取关键字的若干数位组成Hash地址。选择的原则是使得到的Hash地址尽量避免冲突,即所选数位上的数字尽可能是随机的。

3、平方取中法

取关键字平方后的中间几位作为Hash地址。通常在选定Hash函数的时候不一定能知道关键字的全部情况,仅取其中的几位为地址不一定合适,而一个数平方后的中间几位数和数的每一位相关,由此得到的Hash地址随机性更大,取的位数由表长决定。

4、除留余数法

取关键字被某个不大于Hash表表长m的数P除后所得的余数为Hash地址,即H(key)=key mod p(p<=m)。一般P选择为小于或者等于表长的最大素数。

5、折叠法

6、随机数法

哈希表冲突的四种解决方法:

1、开放地址法

1)线性探查法

2)  平方探查法

2、链地址法

链地址法就是把所有的同义词用单链表连接起来的方法。在这种方法中,Hash表每个单元中存放的不再是记录本身,而是相应同义词单链表的表头指针。

3、再散列法(再哈希法)

4、建立一个公共的溢出区