基础算法
bxg1065283526
希望现在开始为时不晚,努力一定会有收货
展开
-
最小生成树(Prime算法、Kruskal算法)和最短路径算法(Floyd算法、DijKstra算法)
带权图分为有向和无向,无向图的最短路径叫最小生成树(即可查看图是否是连通图),有Prime算法、Kruskal算法,有向图的最短路径算法(Floyd算法、DijKstra算法)。 生成树的概念:联通图G的一个子图如果是一棵包含G的所有顶点的树,则该子图称为G的生成树 生成树是联通图的极小连通子图。所谓极小是指:若在树中任意增加一条边,则 将出现一个回路;若去掉一条边,将会使...转载 2018-03-08 12:06:33 · 831 阅读 · 1 评论 -
KMP----求解字符串匹配问题
转载自-----点击打开链接KMP算法求解什么类型问题字符串匹配。给你两个字符串,寻找其中一个字符串是否包含另一个字符串,如果包含,返回包含的起始位置。 如下面两个字符串:char *str = "bacbababadababacambabacaddababacasdsd";char *ptr = "ababaca";str有两处包含ptr 分别在str的下标10,26处包含ptr。“bacba...转载 2018-03-23 19:56:39 · 338 阅读 · 0 评论 -
高精度乘法
1.高精度乘法原理高精度乘法问题主要利用了乘法原理,利用字符数组存放超过数字类型长度的数,然后将字符数组的值转入数字数组内进行计算。该算法的核心就是利用两个循环依次循环处理各位数,然后判断是否需要进位。# include <stdio.h># include <string.h> // 调用strlen函数的头文件#pragma warning(disable:499...原创 2018-04-01 21:42:17 · 2667 阅读 · 1 评论 -
扩展欧几里得算法
文章原链接点击打开链接欧几里得算法欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数 gcd(a,b)。基本算法:设 a = qb + r,其中a,b,q,r都是整数,则 gcd(a,b) = gcd(b,r),即 gcd(a,b) = gcd(b,a%b)。证明: a = qb + r 如果 r = 0,那么 a 是 b 的倍数,此时显然 b 是 a 和 b 的最大公约数。 如果 r...原创 2018-03-27 21:25:27 · 313 阅读 · 0 评论 -
最大连续子序列和
什么是最大连续子序列和问题?问题描述:给定一个序列(整数或浮点数),求出其中连续的子序列和最大的那一个。例:序列{-10 1 2 3 4 -5 -23 3 7 -21},其最大的连续子序列为{1 2 3 4}或{3 7},最大和为10.方法一:暴力求解最最普通的方法,效率十分低,一般不会用到,这里简单介绍。直接两个for循环枚举子序列的首尾,再来一个for循环计算首尾之间的序列和,计算所有的序列和...原创 2018-04-16 16:32:27 · 371 阅读 · 0 评论 -
openjudge 百练 4148 生理周期
总时间限制: 1000ms内存限制: 65536kB描述人生来就有三个生理周期,分别为体力周期、感情周期和智力周期,它们的周期长度分别为23天、28天和33天。每一个周期中有一天是高峰。在高峰这天,人会在相应的方面表现出色。例如,在智力周期的高峰,人会思维敏捷,注意力容易高度集中。因为三个周期的长度不同,所以通常三个周期的高峰不会落在同一天。对于每个人,想知道何时三个高峰落在同一天。对于每个周期,...原创 2018-05-17 20:23:45 · 474 阅读 · 0 评论 -
排序算法
1.快速排序#include<stdio.h>#include<iostream>using namespace std;void P(int a[],int n){ for(int i=0; i<n; i++) cout<<a[i]<<" "; cout<<endl;}void quic..原创 2018-07-04 22:17:29 · 245 阅读 · 0 评论