当前位置:首页 » 操作系统 » 算法源码

算法源码

发布时间: 2022-02-04 15:23:49

Ⅰ 求LZW算法源代码!!

#include<iostream>
#include<cstdio>
#include<cstring>
#include<ctime>//用来计算压缩的时间
using namespace std;

//定义常数
const int MAX = 1000003;//最大code数,是一个素数,求模是速度比较快
const int ascii = 256; //ascii代码的数量
const int ByteSize = 8; //8个字节

struct Element//hash表中的元素
{
int key;
int code;
Element *next;
}*table[MAX];//hash表

int hashfunction(int key)//hash函数
{
return key%MAX;
}
void hashinit(void)//hash表初始化
{
memset(table,0,sizeof(table));
}
void hashinsert(Element element)//hash表的插入
{
int k = hashfunction(element.key);
if(table[k]!=NULL)
{
Element *e=table[k];
while(e->next!=NULL)
{
e=e->next;
}
e->next=new Element;
e=e->next;
e->key = element.key;
e->code = element.code;
e->next = NULL;
}
else
{
table[k]=new Element;
table[k]->key = element.key;
table[k]->code = element.code;
table[k]->next = NULL;
}
}
bool hashfind(int key,Element &element)//hash表的查找
{
int k = hashfunction(key);
if(table[k]!=NULL)
{
Element *e=table[k];
while(e!=NULL)
{
if(e->key == key)
{
element.key = e->key;
element.code = e->code;
return true;
}
e=e->next;
}
return false;
}
else
{
return false;
}
}
void compress(void)//压缩程序
{
//打开一个流供写入
FILE *fp;
fp = fopen("result.dat", "wb");

Element element;
int used;
char c;
int pcode, k;

for(int i=0;i<ascii;i++)
{
element.key = i;
element.code = i;
hashinsert(element);
}
used = ascii;

c = getchar();
pcode = c;
while((c = getchar()) != EOF)
{
k = (pcode << ByteSize) + c;
if(hashfind(k, element))
pcode = element.code;
else
{
//cout<<pcode<<' ';
fwrite(&pcode, sizeof(pcode), 1, fp);
element.code = used++;
element.key = (pcode << ByteSize) | c;
hashinsert(element);
pcode = c;
}
}
//cout<<pcode<<endl;
fwrite(&pcode, sizeof(pcode), 1, fp);

}
int main(void)
{
int t1,t2;

//欲压缩的文本文件
//freopen("input.txt","r",stdin);
freopen("book5.txt","r",stdin);

t1=time(NULL);
hashinit();
compress();
t2=time(NULL);

cout<<"Compress complete! See result.dat."<<endl;
cout<<endl<<"Total use "<<t2-t1<<" seconds."<<endl;
}

Ⅱ 数据结构(c语言版)的算法C语言源码

这本书上的源代码好像不是C语言环境下可以直接运行的,还是得适当修改才行。

Ⅲ PHP算法 求个源码

你给的这个网站出问题了,你要什么样的下载站说清楚一下,我可以给你做一个,我们就是专门做网站的,简单的不收费,要是太复杂了多少得给点儿辛苦费

Ⅳ 哪位高手有ElGamal算法源码

Ⅳ 求《数据结构》严尉敏版 c语言算法源代码

不好,学习数据结构最重要的就是自己动手实现算法,这样才能深入理解算法的精髓,还是建议自己做,做的过程中有什么问题可以及时提问。

Ⅵ 求BP神经网络算法源码

这里有C的实现,怎么知道你邮箱

Ⅶ 哪位高手有elgamal算法源码

ElGamal方法分为密钥生成、加密过程和解密过程进行描述。假设Alice和Bob分别为通信的双方,则:

密钥生成
通信发起一方的Alice按以下方法生成公钥:

Alice通过生成元g和阶q定义一个乘法循环群G;
Alice在集合R={0, 1, 2, ..., q-1}中随机选择一个整数x;
Alice根据群G的生成元和阶生成群中的一个元素h:;
Alice将{G, q, g, h}作为公钥发布,x作为私钥妥善保存。
加密过程
通讯另一方的Bob在加密过程中通过公钥{G, q, g, h}对明文m进行加密(其中1-3步可以事先完成。):

Bob在集合R={0, 1, 2, ..., q-1}中随机选择一个整数y;
Bob根据{G, q, g, h}生成群中的一个元素 ;
Bob根据 得到对称密钥;(由于Bob每次接收到消息后都会生成s,因此s也称为临时密钥)
Bob将明文m转换为群G中的一个元素 ;(如将特定信息进行编码)
Bob计算 ;
Bob将 作为密文发送。
解密过程
Alice使用私钥x对密文 进行解密,步骤为:

Alice计算 ;
Alice计算群中的元素 ,并将其还原为明文。(将编码还原为信息)
下述等式保证了Alice计算出的编码与Bob转换的编码相同:

Ⅷ c语言斐多那契算法代码

用数组的办法编一下吧,方法很多了,记得好象一般的C语言书上都会有的题目:
#include "stdio.h"
main()
{int a[20]={1,1},i;
for(i=2;i<20;i++)
a[i]=a[i-1]+a[i-2];
for(i=0;i<20;i++)
{if(i%5==0) printf("\n");
printf("%10d",a[i]);
}
}

Ⅸ 求:利息算法源码

利息*利率*时间*80%就是拉

Ⅹ 算法,源码及实战详解 这本书怎么样

本书以Spark 1.4.1版本源码为切入点,全面并且深入地解析Spark MLlib模块,着力于探索分布式机器学习的底层实现。
本书循序渐进,首先解析MLlib的底层实现基础:数据操作及矩阵向量计算操作,该部分是MLlib实现的基础;
其次再对各个机器学习算法的理论知识进行讲解,并且解析机器学习算法如何在MLlib中实现分布式计算;然后对MLlib源码进行详细的讲解;
最后进行MLlib实例的讲解。相信通过本书的学习,读者可全面掌握Spark MLlib机器学习,能够进行MLlib实战、MLlib定制开发等。

热点内容
excel缓存清除 发布:2024-11-15 00:39:53 浏览:486
机械键盘可编程 发布:2024-11-15 00:39:09 浏览:912
php判断字符开头 发布:2024-11-15 00:35:33 浏览:507
网易苹果游戏怎么转移到安卓 发布:2024-11-15 00:07:52 浏览:270
win7php环境搭建 发布:2024-11-15 00:06:55 浏览:17
erpjava 发布:2024-11-14 23:52:23 浏览:253
电脑版地平线四怎么连上服务器 发布:2024-11-14 23:46:42 浏览:472
ios怎么变安卓 发布:2024-11-14 23:46:36 浏览:333
win7共享xp打印机拒绝访问 发布:2024-11-14 23:45:29 浏览:750
引起资源配置失效的原因有哪些 发布:2024-11-14 23:35:22 浏览:15