查字典时,比如查单词 Love ,我们是从第一个字母L,开始查找,在A~Z开头中的单词中,不管是实际操作的二分查找还是别的方式查找,总能找到L打头的单词所在的位置范围,然后又在这个范围内开始查找O字母排第二的单词,之后又依次检索V字母,E字母,直到找到LOVE这个单词,紧跟着这个单词后面的单词是前面字母LOVE都相同的,长度比love长的单词比如lovely,知道没有这个单词了,才开始轮转下一个字母。
这个过程其实已经是在按照字典序排序的规则查找我们要的内容了,字典序的命名也是这样来的吧!我不管,我就是这么理解的。
什么是全排列
百度百科说:从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。
公式:全排列数f(n)=n!(定义0!=1)
没错,就是我们在概率论中学习的排列组合知识,还记得A排列,C组合这个吧!
$$ A^{n}_{n} = n! $$就是n的全排列。
字典序
直接看下面的示例比较清晰:
字典序排序的小示例
abc三个字母的字典序排列:abcaabaca
aaabaacaa
aabbabcab
aacbaccac
abbbcb
ababbacba
abbbbbcbb
abcbbccbc
<