1.任何一个递归过程都可以转换成非递归过程(✓)
2.Hanoi问题
假设个盘子的Hanoi问题需要
次操作来完成,三根柱子分别为A,B,C,则实现算法主要分为三个步骤:
1)把n-1个盘子由 A 移到 B
2)把第n个盘子 由 A 移到 C
3)把n-1个盘子由 B 移到 C
可以看出,此问题是一个递归问题:。
个盘子的Hanoi问题的总移动次数为:
。
3.设哈希表长为11,哈希函数为Hash (key)=key%11。存在关键码{43,7,29,22,16,92,44,8,19},采用二次探测法处理冲突,建立的hash表为
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
22 | 44 | 92 | 16 | 19 | 7 | 29 | 8 | 43 |
采用开放定址法处理冲突中的二次探测再散列(也即是题目中的二元探测法),哈希函数变为
对于43,代入公式为Hash(43) = 43 % 11 = 10, 则地址为10;
对于7,代入公式为Hash(7) = 7 % 11 = 7,则地址为7;
对于29,代入公式为Hash(29) = 29 % 11 = 7, 与7冲突,则采用二次探测进行消除冲突, 继续(7 + 1) % 11 = 8,没有冲突,则地址为8;
对于22,代入公式Hash(22) = 22 % 11 = 0, 则地址为0;
对于16,代入公式Hash(16) = 16 % 11 = 5, 则地址为5