算法
海边的西西弗斯
610203816@qq.com
展开
-
【算法】剪枝&回溯
回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择。剪枝:避免进入无用分支。原创 2020-02-27 17:27:30 · 440 阅读 · 0 评论 -
【算法】贪心&BFS&DFS
贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。BFS广度优先,DFS深度优先。原创 2020-02-27 17:25:55 · 1726 阅读 · 0 评论 -
【算法】分治法
将大问题分解为若干个子问题,子问题解决后再将解合并原创 2020-02-27 17:23:49 · 204 阅读 · 0 评论 -
【算法】递归
以斐波那契数列为例:每一层只解决本层的问题,并假设下一层的结果就是factorial(n-1)原创 2020-02-27 17:22:13 · 146 阅读 · 0 评论 -
大数运算
手写3类大数运算的C++代码,思路都是模拟手算过程。原创 2020-02-14 22:58:32 · 232 阅读 · 0 评论 -
约瑟夫环问题
约瑟夫问题是个有名的问题:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。例如N=6,M=5,被杀掉的顺序是:5,4,6,2,3,1。原创 2020-02-09 12:20:28 · 536 阅读 · 1 评论 -
【算法】动态规划
动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。但我们可以用一个表来记录所有已解的子问题的答案。不管该子问题以后是否被用到,只要它被计算过,就将其结果填入表中。这就是动态规划法的基本思路。原创 2020-01-13 15:47:38 · 288 阅读 · 0 评论 -
最大子数组问题算法比较
title: 最大子数组问题算法比较date: 2019-02-08 17:23:34tags: Algorithms《算导》4.1-3。将暴力法和分治法进行比较。首先定义结构体:typedef struct { int left; int right; int max;}ans;产生随机数组以供测试#include <time.h>#define ran...原创 2019-02-08 17:30:38 · 509 阅读 · 0 评论 -
Leetcode c++ 加速代码
static int n=[](){ std::ios::sync_with_stdio(false); std::cin.tie(nullptr); return 0;}();在一位大佬的朋友圈看到的,把这段代码放在开头,试了下真的有用。原因不知道,好像是异步io减少了阻塞的时间。。。...原创 2019-01-14 22:54:43 · 1688 阅读 · 0 评论 -
【算法】二分查找
二分查找适用于单调、存在上下界的线性序列,是最快的搜索算法。递归实现int bin_search(vector<int> v, int left, int right, int target){ if (left > right) return -1; int mid = left + (right - left) / 2; i...原创 2018-12-29 17:48:22 · 221 阅读 · 0 评论 -
【算法】排序小结
排序算法一直搞不清楚,最近学习排序算法,结合相关书籍和相关网站,总结下。原创 2018-12-28 22:19:32 · 282 阅读 · 2 评论