算法设计
文章平均质量分 56
妖__ING
这个作者很懒,什么都没留下…
展开
-
排列问题
最近在看刘汝佳的《算法竞赛入门经典》,上面有道习题很有意思,说用1到9组成三个三位数abc,def,ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3. 生成三个比为1:2:3的数很容易,只需用循环使abc从100循环到999,再使ghi,也就是abc*3小于1000便是,但是最大的问题是1到9每个数字使用一次。这里我想到一个解决方法。因为a+b+。。。+i固定等于45,而且a原创 2012-09-25 13:14:50 · 526 阅读 · 2 评论 -
ADT稀疏矩阵的两种转置方式
/***************ADT稀疏矩阵******************* **************BY:loseryao********************* ***************2015-6-11*********************/ #include #define MAX_TREMS 101 //定义矩阵最大值 #define MAX_COL 50/原创 2015-06-11 16:24:41 · 605 阅读 · 1 评论 -
最大子序列
1-复杂度1 最大子列和问题 (20分) 给定K个整数组成的序列{ N1, N2, ..., NK },“连续子列”被定义为{ Ni, Ni+1, ..., Nj },其中 1≤i≤j≤K。“最大子列和”则被定义为所有连续子列元素的和中最大者。例如给定序列{ -2, 11, -4, 13, -5, -2 },其连续子列{ 11, -原创 2015-09-26 15:51:36 · 498 阅读 · 0 评论 -
动态规划——装配线调度
#include using namespace std; int fast_way(int a[][6],int t[][5],int e1,int e2,int x1,int x2,int n,int l[]) { int *f1 = new int[5]; int *f2 = new int[5]; f1[0] = e1+a[0][0]; f2[0] = e2+a[1][0]; i原创 2015-10-20 13:23:58 · 504 阅读 · 0 评论 -
快速排序
#include using namespace std; int partion(int p,int r,int *a) { int i=p-1; int x=a[r]; for(size_t j =p;j<=r-1;j++) { if(a[j]<=x) { i++; int temp = a[j]; a[j] = a[i]; a[i] = temp;原创 2015-10-11 22:55:53 · 393 阅读 · 0 评论 -
堆排序
#include using namespace std; int left(int i) { return 2*i; }//左孩子 int right(int i) { return 2*i+1; }右孩子 void print_array(int *a,size_t length) { for(size_t i = 1;i < length;i++) { cout<<a[i]<<"原创 2015-10-11 22:20:43 · 366 阅读 · 0 评论 -
计数排序
#include using namespace std; void print_array(int a[] , int n) { for(int i = 0 ; i < n ; i++) { cout<<" "<< a[i]; } cout<<endl; } void count_sort(int *a,int length_ab,int *b,int k) { int *c原创 2015-10-12 12:57:25 · 331 阅读 · 0 评论 -
c++list模仿
#include #include #include #include using namespace std; typedef struct node { char x; node *next; }node; class mylist { private: node *head=new node; int length = 0; node *r=head; void ins原创 2016-04-10 15:09:42 · 494 阅读 · 0 评论 -
多表代换加密(verginia 密码)破解
1.算法思想 首先循环对密文分子串,分别分为一个字串,两个字串等等,然后计算子串的无偏估计值IC,直到字串的无偏估计值的平均值大于0.065为止,然会返回字串的个数,这就是密钥的长度。然后每个字串分别求移位26次的拟重合指数,最大拟重合指数的移位次数加上a就是单个字串的密#include #include #include #include using namespace std; map g原创 2016-04-18 16:01:35 · 4988 阅读 · 3 评论