+ 算法学习总结
文章平均质量分 56
codekun
这个作者很懒,什么都没留下…
展开
-
六种常见的排序方法
#include "iostream"#include "vector"#include "iterator"#include "ctime"#include "random"templateinline void Swap(T & a, T & b){ //交换变量 T tmp = a; a = b; b = tmp;}templateinline bool cmp原创 2015-02-24 12:46:52 · 599 阅读 · 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 · 1258 阅读 · 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 · 923 阅读 · 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 · 605 阅读 · 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 · 600 阅读 · 0 评论 -
向量叉积的应用(三角形面积,线段相交,多边形面积,多边形凹凸性)
向量叉积有甚多应用,包括求三角形面积,判断线段相交,求多边形面积,判断多边形凹凸性,而且不需要推大量公式,误差较小,非常实用,下面是代码//向量叉积的应用#include #define EPS 1e-10using namespace std;struct point{ double x, y; point(int x = 0, int y = 0) : x原创 2015-01-02 12:40:17 · 1027 阅读 · 0 评论 -
筛法素数打表方法
埃拉托斯特尼筛法,是一种公元前250年由古希腊数学家埃拉托斯特尼所提出的一种简单检定素数的算法。给出要筛数值的范围n,找出以内的素数。先用2去筛,即把2留下,把2的倍数剔除掉;再用下一个质数,也就是3筛,把3留下,把3的倍数剔除掉;接下去用下一个质数5筛,把5留下,把5的倍数剔除掉;不断重复下去......。筛法素数时间复杂度o(log log n),基本接近线性,测试十亿个数据2.4原创 2014-11-19 00:19:21 · 670 阅读 · 0 评论 -
大整数类 模板
自己写的大整数模板,已经升级到V2.0功能:计算大整数加减乘数取模运算,支持无限位数,支持正负数输入输出及运算,支持判断两个大整数的大小保障:1.VC++2013,GCC4.7.3运行测试通过2.学校OJ加减乘除取模均AC原创 2014-11-19 00:06:10 · 820 阅读 · 1 评论