Algorithm
文章平均质量分 71
relianceslee
这个作者很懒,什么都没留下…
展开
-
稀疏矩阵的一个实现
#include using namespace std;templateclass LinkedList{ public: LinkedList(); ~LinkedList(); void Insert(const T & value); T * Get(int index); int GetLength() const{return length; } T * Find(con原创 2005-12-26 16:38:00 · 992 阅读 · 0 评论 -
迷宫寻找路径算法
基于下面的思想:here:目前的位置dest:出口位置path:路径栈1:有障碍,0:有路1、查找here周围的点,看看是否有路2、如果有,则here=1,将原位置压入栈,再将here指向新的位置3、没有,path.pop(pop),跳回步骤1。4、如果没有点,即栈为空,则无法找到路径void FindRouth(){ const int ROW=12; //该迷宫外面一圈为障碍墙 const原创 2005-12-29 15:12:00 · 1958 阅读 · 0 评论 -
使用内存块
#include #include class counted{ class memblock{ enum { size=100 }; char c[size]; int refcount; public: memblock(){ memset(c,1,size); refcount=1; } memblock(const memblock & rv){ memcpy(原创 2006-02-16 16:51:00 · 681 阅读 · 0 评论 -
一个二叉查找树的代码
#ifndef H_BTree_#define H_BTree_#include #include using namespace std;class Node{ friend class Tree; private: int key_; string data_; Node * lchild; Node * rchild; public: Node(string data,i原创 2006-04-30 14:59:00 · 812 阅读 · 0 评论 -
选择排序、插入排序、希尔排序
//Select Sort an array//选择排序://每一次从数组里选择出下一个最小(或者最大)的元素,//将他排到指定的位置// 5 1 1 1 1// 1 5 2 2 2// 2 2 5 5 5// 9 9 9 9 8// 8 8 8 8 9// 15 52 5:in 89//缺点:即使数组已经排好序,它仍然每一次都遍历剩下的元素//选原创 2006-05-11 10:57:00 · 1131 阅读 · 0 评论 -
Hash散列算法详细解析(一)
Hash散列算法详细解析(一)作者:冲出宇宙时间:2005年10月30日转载请注明作者。本文详细描述了hash算法的通用模式,在这个基础上对目前作为标准的几种主要hash算法进行了一些分析:md5,ripemd系列,sha系列,tiger以及刚加入到标准不久的whirlpool。给出了部分算法的代码。1 hash定义 传统hash函数的定义:一个hash函数满足下列条原创 2006-05-11 10:51:00 · 6204 阅读 · 0 评论 -
Hash散列算法详细解析(二)
3 MD5算法 md5算法定义在RFC 1321中,由Ron Rivest(RSA公司)在1992年提出。然而很多学者已经找出了构造md5冲突的方法。这些人中包括中国山东大学的王教授和Hans Dobbertin。所以,单纯使用md5的信息认证模式变得不可靠了。但并不是说md5不能够使用。 md5算法的计算步骤: 通过添加一个1和若干个0的方式,把输入数据转载 2006-05-11 10:53:00 · 3341 阅读 · 0 评论 -
Hash散列算法详细解析(三)
4 ripemd算法 顾名思义ripemd就是成熟md算法,是Hans Dobbertin等3人在md4,md5的基础上,于1996年提出来的。算法共有4个标准128、160、256和320,其对应输出长度分别为16字节、20字节、32字节和40字节。不过,让人难以致信的是ripemd的设计者们根本就没有真正设计256和320位这2种标准,他们只是在128位和160位的基础上,修原创 2006-05-11 10:54:00 · 3241 阅读 · 0 评论 -
数学题求解
有这么一道数学题: * * * ---- + ---- + ---- =1 ** ** ** *为1~9的数字,每个数字必须用且只能用一次。分母为两位数。 可以用排列的生成算法枚举所有的情况(当然,还有其他方法,但最好要优化)double a[10];int i=345126789,ii;//1,2显然不能是分子,设a[1],a[2],a[3]为分子且a[1转载 2006-05-15 16:29:00 · 1244 阅读 · 1 评论