當前位置:首頁 » 操作系統 » 演算法源碼

演算法源碼

發布時間: 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定製開發等。

熱點內容
php種子怎麼打開 發布:2024-11-15 06:07:01 瀏覽:346
密碼箱的密碼忘記了如何開鎖 發布:2024-11-15 06:04:41 瀏覽:955
安卓軟體和蘋果系統哪個好 發布:2024-11-15 05:48:32 瀏覽:283
pythonwhileelse 發布:2024-11-15 05:39:10 瀏覽:672
java文件流上傳文件 發布:2024-11-15 05:24:02 瀏覽:147
linux安裝so 發布:2024-11-15 05:22:29 瀏覽:581
九游版冒險王2適合安卓哪個版本 發布:2024-11-15 05:12:33 瀏覽:600
iphonexsmax怎麼連接伺服器 發布:2024-11-15 05:11:46 瀏覽:776
長江存儲校招 發布:2024-11-15 05:11:01 瀏覽:967
oraclesql函數大全 發布:2024-11-15 05:10:00 瀏覽:466