![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法与数据结构
Pastthewind
BJFU
展开
-
算法模板-二分查找java实现(递归与非递归)
在dfs方法中,首先判断如果左指针大于右指针,表示查找范围为空,直接返回-1。如果nums[m]小于target,说明目标元素在右半部分,递归调用dfs方法,并将查找范围缩小为右半部分。dfs方法接收四个参数:nums为待查找的数组,target为目标元素,l为当前查找范围的左边界,r为当前查找范围的右边界。通过递归的方式进行查找,将数组中的元素不断分为两半,判断中间元素与目标元素的大小关系,从而确定下一步的查找范围。然后,判断nums[m]与target的大小关系,如果相等,则找到目标值,返回m。原创 2020-03-22 17:16:36 · 250 阅读 · 1 评论 -
一步一步优化TopK问题(Java版本)
topk问题,即给定一个数组,从该数组中取第k小(大)的元素,或获取前k小(大)的元素。本文给出的例子都是基于获取第K小的元素。例子:int[] arr = {5, 2, 9, 3, 8, 4, 1, 6, 7};int k=4;通过某个算法后最后返回的是4。原创 2018-05-11 10:48:59 · 288 阅读 · 1 评论 -
快速排序-算法模板
【代码】快速排序-算法模板。原创 2018-05-11 10:59:04 · 300 阅读 · 1 评论 -
数据结构-堆(java实现)
如果有一个 关键码的集合 K = {k0 , k1 , k2 , … , kn-1} ,把它的所有元素 按完全二叉树的顺序存储方式存储 在一 个一维数组中 ,并满足: Ki <= K2i+1 且 Ki<= K2i+2 (Ki >= K2i+1 且 Ki >=K2i+2) i = 0 , 1 , 2… ,则 称为小堆 ( 或大堆)。(即双亲比孩子的数值小(大)——小(大)堆)将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。原创 2019-02-05 05:32:15 · 565 阅读 · 1 评论 -
leetcode二叉树相关模板
【代码】leetcode二叉树相关模板。原创 2023-10-27 08:07:54 · 309 阅读 · 1 评论