算法练习
文章平均质量分 59
rattles
这个作者很懒,什么都没留下…
展开
-
好开心呀,能用自己学习知识去做作业了,也算是解决一些问题吧。操作系统实践作业:短作业优先(SJF)和先来先服务算法(FCFS)
//实验一:FCFS 、SJF/* static int MaxNum=100;int ArrivalTime[MaxNum];//到达时间 int ServiceTime[MaxNum];//服务时间 int FinishTime[MaxNum];//完成时间 int WholeTime[MaxNum];//周转时间 double原创 2010-05-12 20:00:00 · 922 阅读 · 0 评论 -
举一反三,STL 中queue的练习
//练习队列的使用#include#includeusing namespace std;struct ps{ int a; int b;};void add(ps pb[],int n){ queueq; for(int i=0;i { pb[i].a=i; pb[i].b=i+1; q.pu原创 2010-05-08 01:45:00 · 348 阅读 · 0 评论 -
树的建立 递归非递归遍历
//创建树#include#include#define MAX 100using namespace std;typedef struct node{ char data; struct node *right,*left;}btree;void createTree(btree *&b,string s){ int top=-1; b原创 2010-05-03 22:48:00 · 455 阅读 · 0 评论 -
Yes!~ 我又写了一次树的建立及中序递归遍历。学习是一个不断重复的过程。温故而知新呀!~还是我自己调试出来的,找出错误的感觉真好!~
//树#include#includeusing namespace std;#define MAX 100typedef struct bnode{ char data; struct bnode *left,*right;}btree;void createTree(btree *&b,string s){ int j=0; ch原创 2010-04-28 13:27:00 · 737 阅读 · 0 评论 -
想了两天,终于把堆排序搞懂了。
//堆排序#include#define MAX 100using namespace std;void display(int a[],int n);void silt(int a[],int n,int m){ int t; t=a[m]; int j=2*(m+1)-1; // display(a,n); while(j {原创 2010-04-27 09:15:00 · 672 阅读 · 0 评论 -
还不能成功,暂还不知道为什么会这样错的。
//还是未能成功#include#include//#include#includeusing namespace std; char book[105]; int count=0;int input(int &count){ ifstream cin("g.in"); int m,n; cin>>m>>n; string cmd;原创 2010-04-22 22:47:00 · 494 阅读 · 0 评论 -
算法目录
1.图论2.数据结构3.搜索4.动态规划5.模拟6.数学7.计算几何8.博弈论9.字符串=========================================初期:一.基本算法:(1)枚举. (poj1753,poj2965)(2)贪心(poj1328,poj2109,poj2586)(3)递归和分治法.(4)递推.(5)转载 2010-04-23 12:08:00 · 1023 阅读 · 0 评论 -
花了好长一段时间,终于把快速排序法弄懂了。
//快速排序法#includeusing namespace std;void split(int a[],int low,int high,int &i){//a[]为2 8 3 6 9 5 1 4 0 7 i=low; int j=high; int x=a[i]; while(i {//目标:x=2, a[]=2 8 3 6 9 5原创 2010-04-24 10:44:00 · 569 阅读 · 0 评论 -
终于学会了用sort排序结构体了。
//I did it!!#include#include#include#define maxSize 1020using namespace std;struct node{ double sum; string s;};int m,n;node array[maxSize];bool cmp(const node &a,co原创 2010-04-22 22:37:00 · 4722 阅读 · 0 评论 -
练习一下各种简单排序法:插入排序、选择排序、双向冒泡排序
//插入排序/*#include#define MAX 1010void simsort(int a[],int n){ int key; for(int i=1;i { key=a[i]; int j; for( j=i-1;j>=0;j--) { if(key {原创 2010-05-20 18:13:00 · 534 阅读 · 0 评论 -
今天有点忙,拙劣地写了个链表 头插入法,尾插入法。
//链表//这个有问题。#include#includetypedef int datatype;typedef struct node{ datatype data; struct node *next;}linklist;//头插入法linklist *createList(){ char ch; linklist *head原创 2010-05-23 00:25:00 · 868 阅读 · 0 评论 -
操作系统 时间片轮转法 用到STL
包含文件:os2.in50 1 2 3 46 2 5 9 8 4(时间片的大小)#include#include#include#include#define MAX 100using namespace std;struct ps{ bool Finished; char c; int ArrivalTime; int Serv原创 2010-05-24 07:58:00 · 1310 阅读 · 1 评论 -
杨辉三角
<br /><br />//杨辉三角<br />#include<stdio.h><br />#define MAX 1024<br />int a[MAX][MAX];<br />void yanghui(int n)<br />{<br /> for(int i=0;i<n;i++)<br /> { <br /> a[i][0]=1;<br /> a[i][i]=1;<br /> }<br /> for(int i=原创 2010-06-18 22:37:00 · 495 阅读 · 0 评论 -
快速排序 调了好些天,想了好几天,终于想通了!以及用舍伍德型概率算法改进的快速排序
//快速排序#include#define MAX 1024int a[MAX];void init(int b[],int n){ for(int i=0;i a[i+1]=b[i];}//4,1,2,6,2,3,5,9,0void qsort(int a[],int low,int high){ int i,j; if(low { i=low; j=high; a[0]=a[i]; wh原创 2010-06-13 13:03:00 · 1307 阅读 · 0 评论 -
旋转矩阵 递归法
<br />//旋转矩阵<br /><br />#include<stdio.h><br />#define MAX 1000<br />int a[MAX][MAX];<br /><br />int matrix(int a[MAX][MAX],int low,int size,int number)<br />{<br /> int i=low;<br /> int j=low;<br /> if(size==1) <br /> {<br />原创 2010-06-11 12:29:00 · 1112 阅读 · 0 评论 -
动态规划
1010.Number TrianglesTime Limit: 1000 MS Memory Limit: 65536 K <br />Total Submissions: 849 (377 users) Accepted: 490 (361 users) <br />[ My Solution ]<br /> Description<br />Considerthe number triangle shown bel原创 2010-06-06 01:37:00 · 498 阅读 · 0 评论 -
双向链表
#include#include#include#define MAX 1002typedef struct node{ char data; struct node *next;struct node *prior;}dlinklist;/*void create_dlink_h(dlinklist *l){ // dlinklis原创 2010-05-29 02:06:00 · 496 阅读 · 0 评论 -
递归法算n皇后问题
#include#include#define MAX 20 int queen[MAX]; int count=0; int quen[MAX];void print(int n){ // count++; // printf("%d/n",count); // if(count>2) exit(1); int k=0;原创 2010-05-30 00:53:00 · 619 阅读 · 0 评论 -
循环队列
<br />#include<stdio.h><br />#include<stdlib.h><br />#define MAX 10<br />typedef struct <br />{<br /> int data[MAX];<br /> int front;<br /> int rear;<br />}rqueue;<br />void create_queue(rqueue *q)<br />{<br /> q->front=q->rear=0原创 2010-05-31 16:20:00 · 429 阅读 · 0 评论 -
OK~终于实现循环链表及链表逆转。可以睡了。
#include#includetypedef struct node{ char data; struct node *next;}rlinklist;void create_rlink(rlinklist *l,int n){ rlinklist *p; for(int i=0;i { p=(rlinklist *)mal原创 2010-05-29 02:37:00 · 588 阅读 · 0 评论 -
递归方法 汉诺塔 hanoi
<br />//汉诺塔<br />#include<stdio.h><br /><br />void move(int n,char a,char b)<br />{<br /> printf("第%d个从%c移向%c/n",n,a,b);<br />}<br />void hanoi(int n,char a,char b,char c)<br />{<br /> if(n==1) move(1,a,c);<br /> else<br /> {<br /原创 2010-05-30 01:20:00 · 454 阅读 · 0 评论 -
坚持每天至少一百行。练习数据结构线性表
//线性表#include#include#include#define maxsize 1024typedef int datatype;typedef struct { datatype data[maxsize]; int last;}sequenlist;void init(sequenlist *L){ // L=(sequenli原创 2010-05-21 20:13:00 · 525 阅读 · 0 评论 -
今天早上写的二叉树的建立及遍历
//树的操作#include#include#include#define MAXN 100using namespace std;typedef struct node{ char data; struct node *left,*right;}BTree;int create_tree(BTree *&b,string str){原创 2010-04-09 21:43:00 · 413 阅读 · 0 评论 -
C++STL练习
//ACM程序设计/*//vector向量容器#includeusing namespace std;int main(){ vectorv; v.push_back(2); v.push_back(7); v.push_back(9); return 0;}*//*原创 2010-04-09 21:38:00 · 790 阅读 · 0 评论 -
C++STL 中向量和字符串的操作,真累呀,一个晚上都在干体力活
//ACM程序设计/*//vector向量容器#includeusing namespace std;int main(){ vectorv; v.push_back(2); v.push_back(7); v.push_back(9); return 0;}*//*//用迭代器访问vector元素#include#原创 2010-04-08 21:42:00 · 1140 阅读 · 0 评论 -
6174问题
#include int get_text(int x) { int a,b; char s[10],t; sprintf(s,"%d",x);//ת»»Îª×Ö·ûŽ® int len=sizeof(x); for(int i=0;i { for(int j=0;j { if(s[j]原创 2010-04-05 22:58:00 · 1062 阅读 · 0 评论 -
今天做了几个题大赛的
//第四章/*//Quicksum#include#includeusing namespace std;int main(){ ifstream cin("4-1.in"); char c[256]; int n=0; int sum=0; while(cin.getline(c,256)) {原创 2010-04-17 23:14:00 · 489 阅读 · 0 评论 -
今天对于图又有了更深的理解,可是还是有问题,那个非递归的深度优先不知道怎么的,好像不能够完全遍历。有点郁闷呀。
//深度优先和广度优先#include#include#define Vnum 20using namespace std;typedef struct arcnode{ int adjvex; struct arcnode *nextarc;}arcnode;typedef struct vexnode{ int vervex; arc原创 2010-04-17 23:12:00 · 620 阅读 · 0 评论 -
郁闷了一段之后,真高兴,把图的创建理解了。keke~
/*//图#include#include#define Vnum 20using namespace std;typedef struct arcnode{ int adjvex; //结点的编号 struct arcnode *nextarc;//指向下一结点的指针}arcnode;typedef struct vexnode{ i原创 2010-04-15 11:25:00 · 511 阅读 · 0 评论 -
我练习的算法目录
回溯法horspool动态规划原创 2010-04-14 22:22:00 · 367 阅读 · 0 评论 -
终于用horspool算法把题目做出来了,可惜那个系统却说超时了,真想不能,有这么好的算法,还超时。
//最贵的贝壳#include#include#include#define MAXN 1020#define MAXM 120using namespace std;typedef struct{ int data[MAXN]; char cs[MAXN];}cost;int *b_table(char pat[],int p_size)原创 2010-04-14 21:51:00 · 588 阅读 · 0 评论 -
我写的回溯法,出现了一个BUG,找了好久。。。。才对上。。。
最終的結果是输入完所有的情况后,没有退出程序。。。/*//回溯法#define N 100#define M 100#includeint com_back(int m,int n){ int a[N]; int i=0; a[i]=1;do { if(a[i]-i原创 2010-04-13 22:49:00 · 300 阅读 · 0 评论 -
我写的回溯法,出现了一个BUG,找了好久。。。。才对上。。。
最終的結果是输入完所有的情况后,没有退出程序。。。/*//回溯法#define N 100#define M 100#includeint com_back(int m,int n){ int a[N]; int i=0; a[i]=1;do { if(a[i]-i { if(i==n-1)原创 2010-04-11 22:51:00 · 457 阅读 · 0 评论 -
今天才从实践中知道,原来C里面是没有引用的,只有C++才有。
//练习引用//#include//#include#include//using namespace std;void rr(int &a,int &b){ int t=0; t=a; a=b; b=t; return ;}int main(){ int m=1; int n=2; printf("%d原创 2010-04-11 22:49:00 · 1094 阅读 · 1 评论 -
horspool 字符串模式匹配。做了一个晚上,还是没有把题解出来,快关灯了,真糟!
//最贵的贝壳#include#include#include#define MAXN 1020#define MAXM 120using namespace std;typedef struct{ int data[MAXN]; char cs[MAXN];}cost;int *b_table(char pat[],int p_size)原创 2010-04-13 22:51:00 · 410 阅读 · 0 评论 -
字符串排序和查找
#include#include#include int n;char word[2000][10],sorted[2000][10];int cmp_char(const void* _a,const void* _b){ char *a=(char *)_a; char *b=(char *)_b; return *a-*b;}int cmp_原创 2010-04-06 18:03:00 · 586 阅读 · 0 评论 -
算法竞赛入门经典
/*#includeint main(){ int a,b,c; int t; scanf("%d%d%d",&a,&b,&c); if(a>=b) { t=a; a=b; b=t; } if(a>=c) { t原创 2010-04-05 21:59:00 · 605 阅读 · 0 评论 -
//计算n=1000的阶乘。
/*//计算n=1000的阶乘。 #include#include#define MAXN 3000int a[MAXN];int main(){ int i,j,n; int s=0; scanf("%d",&n); memset(a,0,sizeof(a)); a[0]=1; for(i=2;i {原创 2010-04-05 22:11:00 · 684 阅读 · 0 评论 -
今天下午写的,真耗时间啊,要自己写程序都不容易,功底不够厚啊!
/*#include//#include//#include//#includeusing namespace std;int a[5010],b[5010],c[5000];int main(){ //ifstream cin("aa.in"); int j=0,k=0; int n; cin>>n; int i,maxi=0;原创 2010-04-10 19:36:00 · 918 阅读 · 0 评论 -
字符串匹配算法比较
做了一个很粗糙的实验,比较了几种字符串匹配算法的性能。程序用-O3进行编译优化。以下为待查找的文本长度为434018字节,模式串长度为4时的典型实验结果。可以看到,horspool算法最快,表现最差的为KMP系的shift_and算法(实验结果与《柔性字符串匹配》一书中的结果一致)。strstr(C库函数) time:743 微秒horspool: time:642 微秒s转载 2010-04-10 19:35:00 · 654 阅读 · 0 评论