插入排序 #includeusing namespace std; void Insert_Sort(int array[], int len){//在未排序的数中选举一个数插入已经排好序的数组中 for (int i = 1; i < len; i++) { int k = i; int tmp = array[k]; for (int j = i - 1; j >= 0; j--
选择排序 #includeusing namespace std;void Select_Sort(int array[], int len){//算法思想:每次从待排序的序列中选举最大(最小)的一个数放在第一个位置 for (int i = 0; i < len; i++) { for (int j = i + 1; j < len; j++) { int tmp; if
poj并查集 这两天学习了下并查集,顺便A了几题,感觉大体都是一样的,主要是对3个函数的应用,makeset(),find(),unionset().这里直接把我A的题目给出来。。。都是简单的。。。,后面的题目会继续A的。。。。poj2524:#includeint fa[50005];int rank[50005];int n,m,result;int make(int x){ fa[x]
poj1328 题目大意:给定几个点,求用几个雷达能覆盖全部的点,输入的点为坐标,雷达的半径首先给定!贪心求解:#include#includedouble x[1005],y[1005];double left[1005],right[1005];double r;int n,flag,test;int main(){ test=1; while(scanf("%d%lf",&n,&r
poj3295-Tautology /*大致题意:输入由p、q、r、s、t、K、A、N、C、E共10个字母组成的逻辑表达式,其中p、q、r、s、t的值为1(true)或0(false),即逻辑变量;K、A、N、C、E为逻辑运算符,K --> and: x && yA --> or: x || yN --> not : !xC --> implies : (!x)||yE --> equals
模式匹配的几种算法(含KMP算法) #include#include#includeint failure[100];//失配函数int strmatch_bf(char *s,char *t){ //简单模式匹配,基本思想:将s和t进行比较,如果相等继续比较,否则t从头开始,s从i-j+1开始 int i,j; i=j=0; while((i < int(strlen(s))) && (j < int(strle
多项式相乘与相加演示 #include#includetypedef struct node{ int p; int e; struct node *next;}Polynomial,*P_Polynomial;P_Polynomial Input(){//输入多项式 P_Polynomial p1,p2,head; head=p2=(P_Polynomial)malloc(sizeof(
数据结构课程设计-发牌程序1 #include#include#include#includevoid creatrand(int result[]){ int i,j,n; int start[52]={0,1,2,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17,18,19,20,21,22,23,24, 25,26,27,28,29,30,31,32,33,
数据结构课程设计-大数相乘 #include#include#define MAXSIZE 500typedef struct node{ int data[MAXSIZE]; int length;}SeqList,*PSeqList;PSeqList Init_Seqlist(){ PSeqList PL; PL=(PSeqList)malloc(sizeof(SeqList)); if(PL)
poj2488-搜索 判断给定的棋盘,马是否能遍历完所有的点,能遍历完就打印路径,否则输出不可能!代码:#include#includeint movex[8]={-2,-2,-1,-1,1,1,2,2};int movey[8]={-1,1,-2,2,-2,2,-1,1};//这个顺序不能变 int flag;//是否可能的标志量int a,b;//给定棋盘大小int pathx[26],path
poj1111-搜索 #include#includechar maze[25][25];int map[25][25];int visit[25][25];int movex[8]={0,0,1,-1,1,1,-1,-1};int movey[8]={1,-1,0,0,1,-1,1,-1};int m,n,s,t,l;void dfs(int a,int b){//深度搜索 int x,y,i;
杭电1312-搜索 深度优先搜索:#include#include#includeint n,m;int hash[30][30];//记录是否是。 char map[30][30];//迷宫,要初始化 void DFS(int x,int y){ if(x>n||y>m||hash[x][y]||map[x][y]=='#') return;//走过了,则
二叉树的非递归实现 #include#include#include//栈的存储结构typedef struct bnode{ char data; struct bnode *left,*right;}Bnode,*BTree;typedef struct node{ BTree data; struct node *next;}StackNode,*PStackNode;typed
杭电1242-搜索专题&&迷宫问题 本题和前面搜索题目有一点区别,前面的题目都是从起点开始搜索,而本题是从终点开始搜索,因为起点不止一个!!!!题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1242AC代码:#include#includeint m,n,flag,min;int startx,starty,endx,endy;int movex[]={1,0,-1
杭电1241-搜索专题&&迷宫问题 dfs()水题:#include#includeint m,n;char maze[105][105];int dfs(int a,int b){//深度遍历图结构,遍历完一次,说明图的区块加1 , int i; int x,y; int movex[]={-1,0,1,-1,1,-1,0,1}; int movey[]={1,1,1,0,0,-1,-1,-1}; if(
杭电1010-搜索&&迷宫问题 迷宫问题,注意剪枝!!!AC代码:#include#includeint n,m,t,flag;int startx,starty,endx,endy,starttime,wallnum;int movex[]={0,-1,0,1},movey[]={-1,0,1,0};//char maze[10][10];int abs(int a,int b){ int c; c=
杭电1239—搜索 题目大意: a.给定整数m,a,b(4 1 b.需要找到两个数(不妨设为p,q)满足以下条件: p,q均为质数; p*q a/b c.输出所有满足以上条件的p,q中乘积最大的一对p,q实现代码1(本人的):#include#includeint is_prime(int n){//判断是否是素数,是