数据结构和算法
沉默的大多数的杂谈感想
这个作者很懒,什么都没留下…
展开
-
递归求全排列
#include#includetemplatevoid perm(T list[],int k,int m){ int i;if (k==m) { for(i=0;i cout cout } else for(i=k;i { swap(list[k],list[i]); perm(list,k+1,m); swap(list[k],list[i]); }}templa原创 2006-12-14 17:22:00 · 725 阅读 · 0 评论 -
汉诺塔问题
#includeint TowersOfHanoi(int n,int x,int y,int z);int main(){TowersOfHanoi(10,1,2,3);return 0;}int TowersOfHanoi(int n,int x,int y,int z){if(n>0){ TowersOfHanoi(n-1,x,z,y); cout TowersOfHanoi(n-1,z,原创 2006-12-19 15:55:00 · 601 阅读 · 0 评论 -
老鼠走迷宫
走迷宫算法的伪代码struct Position{ int row,col;};bool FindPath(){ int maze[m][m]; //form (1,1) to (m,m) path=new Stack(m*m+1); Position offset[4]; offset[0].row=0;offset[0].col=0; //turn right offset[1].r原创 2006-12-21 15:36:00 · 1131 阅读 · 0 评论 -
Base64编码算法
Base64要求把每三个8Bit的字节转换为四个6Bit的字节(3*8 = 4*6 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串理论上将要比原来的长1/3。 转换后,我们用一个码表来得到我们想要的字符串(也就是最终的Base64编码),这个表是这样的: 0 A 17 R 34 i 51 z 1 B 18 S 35 j 52 0 2 C 19原创 2006-12-28 16:13:00 · 1129 阅读 · 0 评论 -
md5算法原理
1、MD5算法是对输入的数据进行补位,使得如果数据位长度LEN对512求余的结果是448。即数据扩展至K*512+448位。即K*64+56个字节,K为整数。具体补位操作:补一个1,然后补0至满足上述要求 2、补数据长度:用一个64位的数字表示数据的原始长度B,把B用两个32位数表示。这时,数据就被填补成长度为512位的倍数。 3. 初始化MD5参数四个32位整数 (A,B,C,D) 用来转载 2006-12-28 16:14:00 · 2452 阅读 · 1 评论