
算法
文章平均质量分 69
qq_35191331
这个作者很懒,什么都没留下…
展开
-
构造一个素数表
#include#define MAX 100000000int prime[MAX]={0};void creat_prime_table(int max)//构造一个素数表,prime[i]值为0,表示i为素数{int i,j;prime[0]=prime[1]=1;for(i=2;i*iif(!prime[i])for(j=i*i;jprime[j]=原创 2016-11-26 13:25:43 · 470 阅读 · 0 评论 -
输入一个很大的数,然后按下回车结束 c语言实现
#include #define MAX 100000int a[MAX];int main() {int i, j;char c;while(1) {i = 0;while(scanf("%c", &c) != EOF) {if(c == '\n') {break;} else {a[i++] = c - '0';}}a[i原创 2017-04-05 21:32:20 · 1130 阅读 · 0 评论 -
go 广度优先算法走迷宫
这个走迷宫算法的原理:就是利用队列先进后出,以起始点为出发,将这个点按照某个方向规则走,周围所有可以走的位置依次写入到队列,这个点走完之后,队首出队列,走这个点所有可以走的点,按照之前的规则,将走过点依次放入到队列中,重复之前过程,直到队列为空或者走到终点。在这个过程中在借助一个辅助矩阵,存放起点到位置的最短路径。文件内容:6 50 1 1 1 00 0 0 1 00 1 0 1 00 0 0 0...原创 2018-03-22 13:57:29 · 1230 阅读 · 0 评论 -
GO 语言用牛顿法开平方根的值
package mainimport ( "fmt" "math")func Sqrt(x float64) float64 { z := 1.0 for { tmp := z - (z*z-x)/(2*z) if tmp == z || math.Abs(tmp-z) < 0.000000000001 { break } z = tmp } return z}func main...原创 2018-03-25 20:01:05 · 2317 阅读 · 0 评论 -
KMP算法中next数组的手工计算方法
笔试题目中经常要求计算KMP算法的next数组,网上有很多讨论的文章,但是感觉都讲的不太清楚,特别是在如何手工计算这一方面,所以今天特别整理了一下放到这里,一来备忘,二来也希望给有缘人带来一些方便。位置编号12345678字符串abaabacanext数组01122341手工计算方法,next数组从1开始计算 next[1] 肯定是 0 next[2] 肯定是 1next[n] 的情况,将前面n-...转载 2018-03-29 08:32:51 · 633 阅读 · 0 评论