C++
daiyier
这个作者很懒,什么都没留下…
展开
-
模式匹配
模式匹配最基本的思想就是源字符串的每个字符和子串的每个字符进行比较,其实现方法如下: int Index(char* S, char* T, int slen,int tlen,int pos){int i=pos,j=0;while(i{if (*(S+i) ==*(T+j)){i++;j++;}else{i = i - j + 2;j原创 2013-10-06 19:47:37 · 922 阅读 · 0 评论 -
二维数组做形参
今天在论坛上有朋友提问:声明函数如下void function(int** pInt),意图是想参数传递一个二维数组。于是就定义了一个二维数组,比如 int[1][1],然后调用函数。结果如何?当然是失败了,编译器提示:cannot convert parameter 1 from 'int [1][1]' to 'int **',参数类型不匹配。上述过程我自己也试了,当然不匹配,类型完全不一样嘛转载 2013-10-04 22:15:35 · 1828 阅读 · 0 评论 -
分支界限法
分支限界法分支限界法与回溯法(1)求解目标:回溯法的求解目标是找出解空间树中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出在某种意义下的最优解。 (2)搜索方式的不同:回溯法以深度优先的方式搜索解空间树,而分支限界法则以广度优先或以最小耗费优先的方式搜索解空间树。 分支限界法的基本思想 分支限界法常以广度优先或以最小耗转载 2013-10-09 11:34:05 · 1113 阅读 · 0 评论 -
快速排序
快速排序(Quicksort)是对冒泡排序的一种改进。冒泡算法小demo://冒泡算法void sort1(int a[],int N){int i,j,t;printf("before sort the array is:");for(i=0;iprintf("%d ",a[i]);printf("\n");for(j=0;j{for(i=0;i原创 2015-05-28 11:11:35 · 282 阅读 · 0 评论 -
Z字蛇形数组的赋值
假设是对一个4*4的二维数组赋值,代码如下void ZSnakeArr(int a[][4],int n){int i=0,j=0,k=1;for(int num =0;num{ if (num%2 == 0)//偶数的时候从右上角网左下角赋值{ if(num>=n)//超过边界时开始对右下角的三角形开始赋值{j = n-1;i = num - j;原创 2013-09-17 22:10:47 · 750 阅读 · 0 评论 -
判断一个数组中的数字是否连续
问题描述:一个数组中若干个非负整数是否连续,其中0可以代表任何数字Input:81 3 5 0 0 0 6 7Output:this array is continue算法实现:#include using namespace std;void sort(int* a,int m){int temp=0;for (int i=0;i{原创 2013-09-29 16:08:48 · 5144 阅读 · 0 评论 -
引用
在C++里面引用就是一个变量的别名,例如:int a = 3;int &b = a;printf("b= %d ",b);输出结果:b=3“&”放在等号左边时是标记引用,放在右边时才是取地址。而在java中通常是对象引用,例如:class A{int data;boolean flag;}那么如下语句中A a = new A();原创 2013-10-01 21:23:44 · 385 阅读 · 0 评论 -
交换两个整数的方法比较
#include using namespace std;void swap0(int x,int y)//形参的交换,没有变化{int temp;temp = x;x = y;y = temp;}void swap1(int *x,int *y)//指针传递(地址传递)形参是两个整型指针,调用的时候传入整型的地址,{int temp;t原创 2013-10-01 21:59:10 · 615 阅读 · 0 评论 -
S字蛇形数组赋值
问题描述:输入一个整数,作为二维数组的行列,将二维数组中的值赋值成S蛇形。Input:m=5Output: 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9程序实现如下:#include using namespace std;原创 2013-10-04 22:07:47 · 928 阅读 · 0 评论 -
检测四川麻将是否胡牌算法的实现
自己写了一个四川麻将胡牌的算法,加入有两组牌让你判定是否胡牌,就只是最简单的那种胡法,非常不完善。其中char *as1 = "1W1W2T2D3W3W5W5W7W7W8W8W9W9W";char *as2 = "1W1W1W2W3W4W4W5W6W7W8W9W9W9W";主要思想是:1)给牌分组,并排序;检查是否打缺了,只有缺了一门才能胡牌哦;在排序的时候一定......原创 2013-10-04 22:20:37 · 4205 阅读 · 2 评论 -
接口
平时用C/C++和java相对较多,一般在c++中用到的接口就是指成员函数,用接口访问成员变量比直接访问成员变量安全一些。例如一个类中有class test{public :int x,y;//一下四个函数就是接口int getX();int getY();void setX();void setY();}在java中的接口则不一样,它是先要定义一个接口原创 2013-10-05 15:35:28 · 1048 阅读 · 0 评论 -
C++ 中关键字static的作用
本文只是本人对C++中关于静态类型的一个总结,如错误之处,请大家帮我改正。我分两个方面来总结,第一方面主要是相对于面向过程而言,即在这方面不涉及到类,第二方面相对于面向对象而言,主要说明static在类中的作用。 一、在面向过程设计中的static关键字 1、静态全局变量 定义:在全局变量前,加上关键字 static 该变量就被定义成为了一个静态全局变量。 特点:转载 2013-10-06 11:12:22 · 543 阅读 · 0 评论 -
判断一个链表中是否包含环
1、如何判断一个链表是不是这类链表? 2、如果链表为存在环,如果找到环的入口点?解答:一、判断链表是否存在环,办法为:设置两个指针(fast, slow),初始值都指向头,slow每次前进一步,fast每次前进二步,如果链表存在环,则fast必定先进入环,而slow后进入环,两个指针必定相遇。(当然,fast先行头到尾部为NULL,则为无环链表)程序如下:bool IsEx转载 2013-09-29 16:13:40 · 754 阅读 · 0 评论