梯度提升树GBDT GBDT是Boosting家庭中,除AdaBoost外另一个重要的算法。算法思想同样是让本轮迭代找到的决策树的损失比上轮更小。 GBDT负梯度拟合 用损失函数负梯度来拟合本轮损失近似值,进而拟合一个CART回归树。第t轮的第i个样本的损失函数的负梯度表示为: $$ r_{ti}= ...
分类:
其他好文 时间:
2020-05-13 16:50:25
阅读次数:
58
图的最短路径&最小生成树的以点为中心思想的算法总结 在图的常见问题中,求最短路径和图的最小生成树问题最为常见。而关于这两种问题,有一种算法思想可以用几乎相同的代码解决两种不同的问题。 这种算法思想的基础基于点,分别对应了最短路径问题中的Dijkstra算法和最小生成树问题中的prim算法。 这种算法 ...
分类:
编程语言 时间:
2020-05-05 00:44:07
阅读次数:
64
解法1 思路 数组中的每个元素 依次 作为子序的头元素 ,枚举各自构成子序的结果 双for O(n^2) 160 ms 代码 优化 动态规划 "动态规划算法思想" ...
分类:
其他好文 时间:
2020-05-04 19:12:16
阅读次数:
54
分治算法思想 将问题分为k个子问题,对这k个子问题分别求解。如果子问题的规模仍然不够小,则每个子问题再划分为k个子问题,如此递归的进行下去,直到问题规模足够小,很容易求出其解为止。 问题分析 这个问题的时间复杂度我似懂非懂,想知道其中的具体过程的请自行百度。 对于两个数字X、Y,传统计算方式的时间复 ...
分类:
编程语言 时间:
2020-04-30 11:55:12
阅读次数:
109
手写堆 算法思想 堆是一颗完全二叉树 STL里的堆就是优先队列priority_queue 用一维数组存储 下标一定是从1开始,避免0的左儿子2x还是0的冲突 核心操作:down(x)下移节点 up(x)上移节点 插入一个数 heap[++size] = x; up(size); 求集合当中的最小值 ...
分类:
其他好文 时间:
2020-04-29 12:33:48
阅读次数:
52
简述 归并排序与基于交换、选择等排序的思想不一样,“归并”的含义是将两个或两个以上的有序表组合成一个新的有序表。 算法思想 假定序列有n个记录,则可以将其看成是n个有序子序列,每个子序列的长度为1,然后两两合并,得到$\lceil n/2 \rceil$个长度为2或1的有序序列;再两两归并,···· ...
分类:
编程语言 时间:
2020-04-17 21:49:48
阅读次数:
69
简述 选择排序的基本思想是:每一趟从待排序列中选取关键字最小的元素,作为有序序列的一个新的元素,直到待排序列只剩下一个元素,则完成排序。主要算法有简单选择排序和堆排序。 简单选择排序 算法思想 假设序列为L[1...n],第i趟排序从L[i...n]中选择最小的元素与L(i)交换,因此每一趟可以确定 ...
分类:
编程语言 时间:
2020-04-17 20:06:43
阅读次数:
83
trie 介绍算法思想 是一种字符串处理操作,是通过将重复的地方重合起来实现对内存的压缩 比如说 对于 进行合并 那么就是通过压位处理将公共部分 合并起来就行了 但是我们还是有不同的部分 那么在分开存储不同的部分就行了 想到了什么? 树!!! 没错 我们将字符串通过树的形式存储 比如说字符串 和`` ...
分类:
其他好文 时间:
2020-04-16 22:49:40
阅读次数:
159
简述 插入排序是一种简单直观的排序方法,其基本思想在于每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中,直到全部记录插入完成。插入排序主要有三个算法:直接插入排序、折半插入排序和希尔排序。 直接插入排序 算法思想 直接插入排序的简单思想就是不断地将一个元素插入到一个有序的序列中, ...
分类:
编程语言 时间:
2020-04-16 19:17:00
阅读次数:
68
作用 用于求一个串的字典序最小的循环串 原理 详见 "oi wiki 最小表示法" 算法思想是贪心。 例题 "HDU2609 How many" ...
分类:
其他好文 时间:
2020-04-14 01:16:07
阅读次数:
211