+ 算法学习总结
文章平均质量分 56
codekun
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
六种常见的排序方法
#include "iostream" #include "vector" #include "iterator" #include "ctime" #include "random" template inline void Swap(T & a, T & b){ //交换变量 T tmp = a; a = b; b = tmp; } template inline bool cmp原创 2015-02-24 12:46:52 · 628 阅读 · 0 评论 -
浅谈生成全排列的4种方法
方法一:最简单的方法,直接使用STL中的next_permutation函数生成排列 #include using namespace std; int main() { char res[] = "ABCD"; do{ puts(res); }while(next_permutation(res, res+4)); return 0; }原创 2014-12-18 16:40:11 · 1308 阅读 · 0 评论 -
快速幂运算
#include using namespace std; //一般方法 int pow1(int a, int b) { int t = a; b--; while(b--) a *= t; return a; } //普通快速幂 int pow2(int a,int b) { int res = 1; int base =原创 2015-01-02 21:47:00 · 981 阅读 · 1 评论 -
任意进制间的转换
#include using namespace std; int toTen(const string & odd, const int base) { int res = 0; for(size_t i = 0; i != odd.length(); i++) { if(isupper(odd[i])) res = res * base + odd[i] -原创 2015-01-02 09:59:06 · 632 阅读 · 0 评论 -
三种方法实现二分查找
最近打算研究一下基础的算法,就先从二分开始做吧,三种方法 #include using namespace std; const int MAXN = 1024; int num[MAXN]; //生成测试数据 void init() { for(int i = 0; i < MAXN; i++) num[i] = i * 3; } //循环查找 int quer原创 2015-01-02 08:52:05 · 629 阅读 · 0 评论 -
向量叉积的应用(三角形面积,线段相交,多边形面积,多边形凹凸性)
向量叉积有甚多应用,包括求三角形面积,判断线段相交,求多边形面积,判断多边形凹凸性,而且不需要推大量公式,误差较小,非常实用,下面是代码 //向量叉积的应用 #include #define EPS 1e-10 using namespace std; struct point{ double x, y; point(int x = 0, int y = 0) : x原创 2015-01-02 12:40:17 · 1077 阅读 · 0 评论 -
筛法素数打表方法
埃拉托斯特尼筛法,是一种公元前250年由古希腊数学家埃拉托斯特尼所提出的一种简单检定素数的算法。 给出要筛数值的范围n,找出以内的素数。先用2去筛,即把2留下,把2的倍数剔除掉;再用下一个质数,也就是3筛,把3留下,把3的倍数剔除掉;接下去用下一个质数5筛,把5留下,把5的倍数剔除掉;不断重复下去......。 筛法素数时间复杂度o(log log n),基本接近线性,测试十亿个数据2.4原创 2014-11-19 00:19:21 · 708 阅读 · 0 评论 -
大整数类 模板
自己写的大整数模板,已经升级到V2.0 功能: 计算大整数加减乘数取模运算,支持无限位数,支持正负数输入输出及运算,支持判断两个大整数的大小 保障: 1.VC++2013,GCC4.7.3运行测试通过 2.学校OJ加减乘除取模均AC原创 2014-11-19 00:06:10 · 873 阅读 · 1 评论
分享