二分查找
章明狼
IT入门手残学生党一枚、Typora忠实爱好者
展开
-
C++ 二叉查找树的编码与解码
序列化和反序列化二叉搜索树题目[leetcode449]序列化是将数据结构或对象转换为一系列位的过程,以便它可以存储在文件或内存缓冲区中,或通过网络连接链路传输,以便稍后在同一个或另一个计算机环境中重建。设计一个算法来序列化和反序列化二叉搜索树。 对序列化/反序列化算法的工作方式没有限制。 您只需确保二叉搜索树可以序列化为字符串,并且可以将该字符串反序列化为最初的二叉搜索树。编码的字符串应尽可能紧凑。注意:不要使用类成员/全局/静态变量来存储状态。 你的序列化和反序列化算法应该是无状态的。思路原创 2020-09-06 15:59:16 · 225 阅读 · 0 评论 -
二叉查找树的基础知识(定义、插入和查找数值)
二叉查找树定义一棵具有以下性质的二叉树:若左子树不为空,则左子树上所有节点的值均小于或等于它的根节点的值。若右子树不为空,则右子树上所有节点的值均大于或等于它的根结点的值。左、右子树也分别为二叉排序树。等于的情况只能出现在左子树或右子树中的某一侧。数据结构与二叉树的完全一样:struct TreeNode{ int val; TreeNode* left; TreeNode* right; TreeNode(int x) : val(x), left(NULL), right(N原创 2020-09-06 11:17:43 · 282 阅读 · 0 评论 -
C++ 利用二分查找寻找满足条件的区间
区间查找题目[leetcode34]给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2:输入: nums = [5,7,7,8,8,10], target = 6输出: [-1,-1]思路二分查找的基础知识了解,请点原创 2020-09-05 13:46:21 · 988 阅读 · 0 评论 -
二分法查找的基础知识(递归形式和循环形式)
二分查找算法定义二分查找又称折半查找,首先,假设表中元素是按升序排序,将表中间位置的关键字与查找关键字比较:如果两者相等,则查找成功;否则利用该中间位置,划分出前、后两个子表:①如果中间位置的关键字大于查找关键字,则进一步查找前一个子表。②否则查找后一个子表。重复上述的过程,直到找到目标关键字,输出查找成功,或者查到子表不存在为止,则查找不成功。比如,待搜索数字target == 2数组A = [-1,2,5,20,90,100,207,800]待查找值target = 2下标:[ 0原创 2020-09-04 10:55:02 · 249 阅读 · 0 评论