- 19
- 0
- 约9.41千字
- 约 68页
- 2019-09-23 发布于湖北
- 举报
ACM竞赛中所用到的数据结构 唐陈兴 2007.12.26 基本数据结构 基础:队列、堆栈、链表 排序与检索:快速排序和归并排序的思想 串的模式匹配:KMP, Boyer-Moore, Trie(*), 有限状态自动机(*) 树:左儿子右兄弟表示法, AVL(用STL实现), 哈夫曼树,Splay Tree(*), 树状数组,线段树 ,PQ树(***) 字典:Hash、并查集(*)、可并优先队列,堆 关于堆 Heap 二叉堆(又名最大/最小堆) 二项堆 映射2分堆 Fibonacci堆 Interval heap 左偏树Leftist Tree 队列Queue 特点: 先进先出 FIFO 入队O(1), 出队O(1) 不能随机访问中间的元素 实现方法: 链表 数组 STL 队列Queue #includequeue using namespace std; //STL queue queue int Q; Member Functions: 堆栈Stack 特点: 先进后出 FILO 入队O(1), 出队O(1) 不能随机访问中间的元素 实现方法: 链表 数组 STL 堆栈Stack #includestack using namespace std; //STL stack int S; 链表list 特点: 插入O(k) 删除O(k) 查找O(k) 最坏情况下都是O(n) 实现方法: 链表 数组-改进块状数组 STL 链表list #includelist using namespace std; //STL listint S; 链表list 排序 排序 快速排序 O(n*log(n)) 堆排序(稳定排序)O(n*log(n)) 选择排序,冒泡排序 O(n^2) 桶排序 O(M) O(n)随机查找第k小元素 std:sort STL #includealgorithm using namespace std; int a[M],b[M]; sort(a,a+n); sort(a,a+n,cmp); bool cmp(const int x,const int y){ return xy; //return b[x]b[y]; } 随机查找第k小元素 随机第k小元素 int select(int *a,int b,int e,int k){ if(b==e) return a[b]; int x=a[b+rand()%(e-b+1)],i=b-1,j=e+1,tmp; while (ij){ while(a[++i]x); while(a[--j]x); if (ij) tmp=a[i],a[i]=a[j],a[j]=tmp; } if (j==e) j--; i=j-b+1; if (k=i) return select(a,b,j,k); else return select(a,j+1,e,k-i); } 串的模式匹配--KMP 由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现的改进的模式匹配算法简称为KMP算法 朴素的串模式匹配的复杂度是O(m*n) 长度为m的母串S, 匹配长度为n的子串A 求母串S中有多少个子串A 求母串S中第1个子串A的位置 KMP算法的复杂度为O(m+n) 总体思想 O(n)线性时间预处理子串,求出前缀函数 O(m)线性时间扫描母串求出匹配 串的模式匹配--KMP //KMP 求前缀函数 int fail[maxlen]; void makefail( char *t, int lt ) { --t; for(int i=1,j=0;i=lt;i++,j++){ fail[i]=j; while(j0 t[i]!=t[j]) j=fail[j]; } } 串的模式匹配--KMP // start matching pattern T in S[i..) // return match pos or longest match length with corresponding pos int kmp(char *s, int ls, char *t, int lt, int i,int longest,int lp) { longest = lp = 0; --s; --t; for(int j=1; i=ls; i++,j++) { while( j0 s[i]!=t[j] ) j=fail[j]; if( jlongest ) {
您可能关注的文档
- 2407DSP第3章 寻址方式和指令系统.ppt
- 24黑体辐射 普朗克能量子假设.pptx
- 24 第六章 65 MOS场效应晶体管.ppt
- 2018版高考政治大一轮复习第四单元发展社会主义市抄济第11课经济全球化与对外开放课件.ppt
- 248号令培训用地规划处.ppt
- 25HZ相敏轨道电路标准化检修作业程序课件(201310).ppt
- 25Hz相敏轨道电路故障处理课件(201310).ppt
- 281锐角三角函数(1)-正弦.ppt
- 281锐角三角函数.ppt
- 26[1]31_实际问题与二次函数.ppt
- 山西天一大联考2025-2026学年高二上学期期末学情监测语文试题(试卷+解析).docx
- 山西忻州部分学校2025-2026学年高一上学期2月质量检测数学试题(人教B版)(试卷+解析).docx
- 山西运城市2025-2026学年高二第一学期期末调研测试数学试题(试卷+解析).docx
- 陕西省榆林市榆阳区2025-2026学年八年级上学期期末地理试题(试卷+解析).docx
- 陕西西安市碑林区2025-2026学年度第一学期期末八年级生物试题(试卷+解析).docx
- 四川省广元市苍溪县2025-2026年八年级上学期期末道德与法治试题(试卷+解析).docx
- 江苏泰州市姜堰区2025-2026学年七年级上学期1月期末数学试题(试卷+解析).docx
- 江苏省扬州市邗江区2025-2026学年九年级上学期期末考试化学试题(试卷+解析).docx
- 江西上饶市铅山县2025-2026学年第一学期期末考试八年级数学试题(试卷+解析).docx
- 江苏扬州市高邮市2025-2026学年度第一学期期末学业质量监测试题九年级英语(试卷+解析).docx
最近下载
- 2026年深圳中考历史易混考点辨析试卷(附答案可下载) (1).docx VIP
- 锡安长老纪要1-24本.pdf VIP
- 2026届高考语文一轮复习:120个文言实词天天练(教师版) .docx
- 2026届高考语文二轮专题复习:整本书阅读:《论语》++课件.pdf VIP
- 外研版中考英语话题复习 居住环境.docx VIP
- 外研版中考英语话题复习:Protecting+the+earth.docx VIP
- 2026年安徽省亳州市辅警人员招聘考试试卷带答案.docx VIP
- 2025年中考生物考纲.docx VIP
- 主播话术 直播间话术技巧训练.pdf VIP
- 外研版中考英语一轮复习 话题7+Hygiene+and+Health+&+Food+and+Drink+&+Safety+and+First+Aid+导学案和作业.docx VIP
原创力文档

文档评论(0)