版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、apriori算法C語(yǔ)言版#include <dos h>#include <conio. h> nclude <math h> nclude <stdio. h>nclude <stdlibh>ttdefine ItemNUmSiZe 2 #define TranNUmSiZe 100 #define LlSTlNCREMENT 1 #define OK 1#define TRUE 1Mefine FASLE 0Mefine ERROR 0Mefine N!AX_ARRAY_DIM 100 Mefine MAXSlZE 100 ty
2、pedef Char ItemType;typedef int ElemType; float minSupport, IninCOnfidence;動(dòng)態(tài)內(nèi)存分配,item用什么數(shù)據(jù)結(jié)構(gòu)動(dòng)態(tài)數(shù)組,線(xiàn)性表好:數(shù)組是整體創(chuàng) 建,整體刪除的typedef StrUCtItemTyPe *item;/項(xiàng)IJint length;/當(dāng)前項(xiàng)目個(gè)數(shù)int IiStSize;/當(dāng)前分配的存儲(chǔ)容量SqList;/事務(wù)數(shù)組集合typedef StrUCtSqLiSt rMAXSIZE+l;int Length;TranList;初始化項(xiàng)Ll的線(xiàn)性表int InitLiStSq(SqLiSt &L) L.
3、item=(ItemTyPe )malloc(ItemNUmSiZe *sizeof(ItemType);辻(!L. item) exit (OVERFLOW) ;/存儲(chǔ)分配失敗L. Iength=0;/空表長(zhǎng)度為0L. IiStSiZe=ItenINumSize;/初始化存儲(chǔ)容量return OK;/初始化事務(wù)的線(xiàn)性表int InitLiStTran(TranLiSt &TranL) /還有更好的動(dòng)態(tài)分配方式初始化for (int i=l;i<=TranNumSize;i+)InitLiStSq(TranL.ri);return OK;/插入項(xiàng)Ll線(xiàn)性表int IiStlnSe
4、rtSq(SqLiSt &L, int i, ItemTyPe e)在線(xiàn)性表L中笫i個(gè)位置之前插入新元素e/i 的合法值為 l<=i<=l. IiStIength+1ItenlTyPe *newbase, *q, *p;if(i<l I i>L. Iength+l)return ERROR;/i 值不合法if (L. Iength>=L. listsize)/當(dāng)前存儲(chǔ)空間已滿(mǎn),添加分配重新分配內(nèi)存空間newbase= (ItenlTyPe*)realIoc (L. item, (L. IiStSiZe+LISTINCRENffiNT) *sizeof (I
5、teInTyPe);if (!newbase)exit (OVERFLOW);L. item=newbase;/新基址L. IiStSiZe+=Listincrement;/增加存儲(chǔ)容量Q-&(L. itemi-l) ;/q 為插入位置for(P=&(L. itemL. Iength-I):p>=q;-P)*(p+l)二*p;插入位置,及之后的元素右移*Q=e;+L. length;return OK;VOid main()int C;ItelnTyPe e;SqLiSt L;int sn;int ItemNum; /項(xiàng) LI 個(gè)數(shù)int trannum20 = 0; /
6、事務(wù)數(shù)量Char b210010;Char b2110010;TranLiSt TranL;SqLiSt LI;InitLiStSq(L);InitLiStTran(TranL);Printf ("鏈表長(zhǎng)度:%dn", L. Iength); 線(xiàn)性表當(dāng)前的元素個(gè)數(shù)Printf ("鏈表大?。?dn", L. IiStSiZe) ; /線(xiàn)性表最多可存放元素的個(gè)數(shù)WhiIe (1)SySten("cls");Printf_s(z,n APriOri 算法的 C 語(yǔ)言實(shí)現(xiàn)n");Printf_s(z,1輸入項(xiàng)目集合n")
7、;Printf_s(z,2 添加事務(wù)n");Printf.S3設(shè)定最小支持度與最小置信度n);Printf_Sc 4 輸出結(jié)果n");Printf_s(, 5 退出n");Printf_s(z,請(qǐng)輸入:n");SCanf-S("%d", &c);SWitCh (C)CaSe 1:/構(gòu)造項(xiàng)Ll集int it;Char ItemValue;SySten("cls");Printf_s ("構(gòu)造項(xiàng) U 集n");Printf-S C請(qǐng)輸入項(xiàng)目個(gè)數(shù):n); 項(xiàng)目個(gè)數(shù)SCanf-S ("
8、%d", &ItemNUln);for (it=l; it<=ItemNum; it+) /依次輸入每個(gè)項(xiàng) U 集fflush(stdin);Printf_s (”n請(qǐng)輸入第%d個(gè)項(xiàng)目的字母(a, b, c, d, e, f,):n",it);SCanf("%c", &ItemVdIUe);IiStlnSertSq(L, it, ItemVaIUe);Printf-S (n初始化后,項(xiàng)LJ集各元素值:);for (int i-0;i<L. length;i+)printf_s("%cn", L. iteml
9、i);_getch();break;CaSe 2:SySten("cls");事務(wù)的數(shù)據(jù)結(jié)構(gòu),動(dòng)態(tài)數(shù)組int i, j;Char tranvalue;Printf_s 請(qǐng)輸入要添加的事務(wù)個(gè)數(shù):n");/事務(wù)個(gè)數(shù)SCanf-S("%d", &Sn);i應(yīng)當(dāng)從0開(kāi)始for (i=l; i<=sn; i+)/依次輸入每個(gè)事務(wù)所包含的項(xiàng)Ll, Printf-S (請(qǐng)輸入笫%d個(gè)事務(wù)包含的項(xiàng)目數(shù):",i);SCanf-S (,z%d,> trannumi);fflush(stdin);for (j=l;j<=trann
10、umi;j+)fflush(stdin);Printf_s ("輸入事務(wù)的第%d個(gè)項(xiàng)目:n", j);SCanf-S("%c", &tranvalue);/動(dòng)態(tài)分配內(nèi)存,插入事務(wù)數(shù)組集合IiStlnSertSq(TranL. r_i_, j,tranvalue);Printf_s n各事務(wù)的項(xiàng)U如下:n");for (i=l:i<=sn;i+)Printf_s Cn 第%d 個(gè)事務(wù)n", i);for (j=0;j<=trannumij;j+)Printf_s(,%c, TranL. r i. itemj);_ge
11、tch();break;CaSe 3:/設(shè)定最小支持度與最小置信度SySten("cls");Printf_s 請(qǐng)輸入最小支持度與最小置信度(空格隔開(kāi)):“);f flush (stdin); 最好在每個(gè) SCanf 前加上 fflush( Stdin );SCanf_s("%f%f", &minSupport, &minConfidence);Printf_s (/zn 最小支持度為:2. 2fn", minSupport);Printf_s C最小置信度為:2. 2fn'z, IninCOnfidenCe);_get
12、ch();break;CaSe 4:/APriOri 算法InitLiStSq(LI);Char generatedCandidate10:int c20 = 0;int f20 = 0;int jj=l;得到Cl,算法第一行for (int i=0; i<ItemNum; i+)/算法太復(fù)雜了,以后改為二義樹(shù)for (int j=l;trannumj!=0;j+)for (int k-0;TranL. rj. itemk!=0;k+)if (L. itemi-TranL. rj. itemkj)ci+;計(jì)算FI支持度辻(ci>=IninSUPPOrt*trannumIi+1) /
13、兩個(gè)整數(shù)相除得到整數(shù)fi=ci;IiStlnSertSq(L1, jj, L. itemi);/LIjj+;Printo(ZZFI 集合為:n);int templ=0;for (int i=0;i<ItemNum;i+)Printf_sC %c=%d ", L. itemi, f i);辻(templ+l)%3=0)Printf_sCn");tempi+;Printf_sCn");排序 TranL. rj. itemkint t;for (int i=l; i<=sn; i+) /每個(gè)事務(wù)for (int j=0; j<trannumj+l ;
14、 j+) /每個(gè)項(xiàng)目if (TranL. ri. itemj>TranL. ri. itemj+l)t-TranL. ri. itemj;TranL. rLiZ. itemLjJ-TranL. ri. itemj+l;TranL. ri. itemEjl=t;/GenerateCandidates 函數(shù)int jl;jl-Ll. length;/把 Ll->b2ifor (int i=0;i<jl;i+)b2i0二LI. itemi;int kk=0;for (int i-0;i<Ll. Iength;i+)generatedCandidatekk=Ll. item.i
15、;kk+;for (int j=i+l;j<Ll. Iength;j+)generatedCandidatekk=Ll. item.i+l;if (generatedCandidate!=0)Char temp;排序for (int i-0:generatedCandidateLi+1!=0:i+)辻(generatedCandidatei>generatedCandidate i+1)temp=generatedCandidatei-;generatedCandidatei=generatedCandidatei+lZ;generatedCandidatei+l=temp;Int
16、 u=0;int v=l;/用V來(lái)進(jìn)行輸出各種組合的標(biāo)識(shí)數(shù)V=I表示正在進(jìn)行輸出int c2100=0;int fIagl=I;int COUnter=zO;int temp;/getsupportfor (int k=2;b20 0!, 0, : k卄)u=0;v=l;for (int i=0;i<100;i+)c2i二0;for (int i=0;i<jl;i+)for (int il二i+l;iljl;il+)for (int j=0;j<k2;j+)if (b2ij!二b2ilj)flagl=0;break;進(jìn)行組合的部分if (flagl=l2ik-2 !=b2il
17、 k2)for (int j2=0;j2<k-l;j2)b21u j2=b2ij2;b21uk-l=b2ilk-2;u+;flagl=l;counter=0;for (int i=0;i<sn;i+)for (int il=O;il<u;il+)for (int jl=0;jl<k;jl+)for (int j-0;TranL. rLi+1. itemj!=, 0, ;j+)if (TranL. ri+l. itemj=b21 il jl)counter+;if (COUnter=k)c2il+;counter=0;Jl=O;temp-O;對(duì)U中情況進(jìn)行選擇,選出支持度計(jì)數(shù)大于2的 for (int i=O;i<u;i+)if (c2i>=minSupport)if (V=I)Printf_s ("nF%d 集合為:n", k);v=0;Printf_s C C);for (int j=0;j<k;j+)b2jlj=b21ij;Printf_
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025便利店商品采購(gòu)與配送合同范本3篇
- 二零二五年度家居裝飾材料區(qū)域代理采購(gòu)合同3篇
- 2025年度10架AC311A直升機(jī)購(gòu)銷(xiāo)與地面服務(wù)保障合同3篇
- 二零二四年度三方貸款資金管理合同3篇
- 二零二五版高端裝備制造工廠生產(chǎn)承包合同書(shū)模板3篇
- 年度智慧停車(chē)戰(zhàn)略市場(chǎng)規(guī)劃報(bào)告
- 2025年蔬菜大棚農(nóng)業(yè)科技研發(fā)與創(chuàng)新合作合同2篇
- 年度丙二酮戰(zhàn)略市場(chǎng)規(guī)劃報(bào)告
- 二零二五版?zhèn)€人短期租房合同補(bǔ)充協(xié)議2篇
- 2024-2025學(xué)年高中歷史第8單元20世紀(jì)下半葉世界的新變化第21課世界殖民體系的瓦解與新興國(guó)家的發(fā)展課時(shí)作業(yè)含解析新人教版必修中外歷史綱要下
- 第12講 語(yǔ)態(tài)一般現(xiàn)在時(shí)、一般過(guò)去時(shí)、一般將來(lái)時(shí)(原卷版)
- 2024年采購(gòu)員年終總結(jié)
- 2024年新疆區(qū)公務(wù)員錄用考試《行測(cè)》試題及答案解析
- 肺動(dòng)脈高壓的護(hù)理查房課件
- 2025屆北京巿通州區(qū)英語(yǔ)高三上期末綜合測(cè)試試題含解析
- 公婆贈(zèng)予兒媳婦的房產(chǎn)協(xié)議書(shū)(2篇)
- 煤炭行業(yè)智能化煤炭篩分與洗選方案
- 2024年機(jī)修鉗工(初級(jí))考試題庫(kù)附答案
- Unit 5 同步練習(xí)人教版2024七年級(jí)英語(yǔ)上冊(cè)
- 矽塵對(duì)神經(jīng)系統(tǒng)的影響研究
- 分潤(rùn)模式合同模板
評(píng)論
0/150
提交評(píng)論