专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅
字典树算法的实现的描述是:由字母a~z所组成的字符串的一个集合中,各个字符的长度之和为n。设计一个O(n)时间的算法,将这个集合中所有字符串依字典进行排序。注意,这里可能存在非常长的字符串。 #include <stdio.h>#include <malloc.h>typedef struct tire{ struct tire *next[26]; char date; int cnt;}*_tire;void init_tire(_tire root, char *string){ _tire s; s=root; while( [阅读全文] [PDF]
Cmn高中数学概率论基础 为了解决一个算法题目中的一个小功能自己写的........ voidcnm1(int*a,intstart,intn,intm) { if(start==n) { for(inti=0;i<n;++i) cout<<a[i]; cout<<endl; return; } ints=0; if(start==0) s=a[0]+1; else s=a[start-1]+1; for(inti=s;i<=m+start-n+1;++i) { a[start]=i; cnm1(a,start+1,n,m); [阅读全文] [PDF]
算法描述为:由字母a~z所组成的字符串的一个集合中,各个字符的长度之和为n。设计一个O(n)时间的算法,将这个集合中所有字符串依字典进行排序。注意,这里可能存在非常长的字符串。 #include<stdio.h> #include<malloc.h> typedefstructtire { structtire*next[26]; chardate; intcnt; }*_tire; voidinit_tire(_tireroot,char*string) { _tires; s=root; while(*string!=’\\0’ [阅读全文] [PDF]
共享下随机算法求圆周率演示源代码 using ;using .Collections.Generic;using .Collections;using .Text; ConsoleApplication1{ Program { void count(Random rand) { Console.Write(\"请输入运算次数:\"); Int32 N = 0; Int32 K = 0; try { strinput = Console.Re [阅读全文] [PDF]
LCS问题就是求两个串最长公共子串问题解法就是用个矩阵来记录两个串中所有位置两个的间匹配情况若是匹配则为1否则为0然后求出对角线最长1序列其对应位置就是最长匹配子串位置. 下面是串21232523311324和串312123223445匹配矩阵前者为X方向后者为Y方向不难找到红色部分是最长匹配子串通过查找位置我们得到最长匹配子串为:212320 0 0 1 0 0 0 1 1 0 0 1 0 0 0  0 1 0 0 0 0 0 0 0 1 1 0 [阅读全文] [PDF]
对于有K个元素的数组int a[k]={.......};写一个高效算法将数组内容循环左移m位,比如:int a[6]={1,2,3,4,5,6},循环左移3位后得到结果{4,5,6,1,2,3}. 要求:1.不允许另外申请数组空间,但可以申请少许变量; 2.不允许采用每次左移。 最直观的想法,就是从第一个元素开始,把他一步移动到最终目的位置,而该位置原有的元素的值取出,移动到它的新位置。递归进行这个步骤。 首先,我们在数学上很容易理解,这是一个一一对应映射,绝不会在一个位置上出现两次移动。所以不会出现移动的递归过程中途指向了已经移动过的元素。 那么,这个递归 [阅读全文] [PDF]
1 共6条 分1页