在维护公司SAP的过程中,遇到一个问题,困扰了很久!

简单描述一下问题:(为了不牵扯公司业务,这是抽取问题)将主要的三个字段

存在一个内表TAB2,如图所示:

需要强调一下,真是的内表比TAB2要多很多字段,(这是重点)

首先对系统中真实的内表进行了排序,其中主要的三个字段的排序如TAB2所示,

(如果是内表TAB2,对COLUMN1排序的话,默认的COLUMN3也会自动安装升序排列):

SORT  TAB2  BY COLUMN1 .

得到下图:

使用二分查找:

READ TABLE TAB2 WITH KEY COLUMN1 = '0800113864' COLUMN2 = '2012' COLUMN3 = '3018054318' BINARY SEARCH.

返回 SY-SUBRC = 8.

即查询没有相关数据!

这就是问题的情况所在!!

我发现问题的过程可以理解为如下步骤:

1. 首先定位到5条记录的中间那条记录,即第3条记录,然后对比COLUMN3。

2. 第3条记录的COLUMN3数据如果不等于 '3018054318' ,则从第3条至第5条记录的中间那条记录,即第4条记录,然后对比COLUMN3。

3. 第4条记录的COLUMN3数据如果不等于 '3018054318' ,则比较第5条记录然后对比COLUMN3。

4. 由于都没有等于 '3018054318' 的记录,则返回SY-SUBRC = 8。

解决此问题的关键:

在于对内表的排序,如果在

READ TABLE TAB2 WITH KEY COLUMN1 = '0800113864' COLUMN2 = '2012' COLUMN3 = '3018054318' BINARY SEARCH.

时候,使用到COLUMN1 = '0800113864' COLUMN2 = '2012' COLUMN3 = '3018054318' ,则对此系统中内表排序的时候需要依照此三个字段进行排序。

--------------------------------------------

解决疑惑,一点点开心。希望对读者有帮助。

SAP ABAP二分查找(binary search)实际问题的深度分析相关推荐

  1. 八、二分查找(Binary Search)

    一.概述 二分查找(Binary Search,也称折半查找)--针对有序数据集合的查找算法 1.基本思想 类似分治思想,每次都通过跟区间的中间元素进行对比,将代查找的区间缩小为之前的一半,直到找到要 ...

  2. 二分查找(Binary Search)需要注意的问题,以及在数据库内核中的实现

    问题背景 今年的实习生招聘考试,我出了一道二分查找(Binary Search)的题目.题目大意如下: 给定一个升序排列的自然数数组,数组中包含重复数字,例如:[1,2,2,3,4,4,4,5,6,7 ...

  3. ABAP性能优化之使用二分查找(Binary Search)选项

    READ命令使用顺序查找数据表,这会降低处理速度.取而代之,使用binary search的附加命令,可以使用二分查找算法,可以帮助加快内表查找速度. 在使用binary search之前 必须首先将 ...

  4. SAPABAP性能优化技巧—使用二分查找(Binary Search)选项

    READ命令使用顺序查找数据表,这会降低处理速度.取而代之,使用binary search的附加命令,可以使用二分查找算法,可以帮助加快内表查找速度. 在使用binary search之前必须首先将内 ...

  5. Leetcode中几道二分查找(Binary Search)的算法题总结

    二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法.但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列.二分查找法的时间复杂度是对数级别的,O(lo ...

  6. 二分查找 Binary Search

    明确循环不变量:变量的值可能在变化,但是它的含义是不变的 https://baike.baidu.com/item/循环不变量/8353186?fr=aladdin 如何写出正确的程序? 明确变量的含 ...

  7. 算法导论第2章(3) 二分查找 binary search

    二分查找(分治法). 二分查找也是一种分治法的实现,每一次查找将数据分为两个部分,问题规模都减小一半.这样查找的时间复杂度为logN.因为其实查找过程建立了一棵有N个节点的二叉树,查找次数是这棵树的高 ...

  8. #2020寒假集训#二分入门(Binary Search)代码笔记

    二分查找--Binary Search 原理就类似于下图啦(网上看到哒,忽略这个代价) 二分的时间复杂度一般是 O(logN) 的,超开心了有木有٩(๑>◡<๑)۶ 最简单来说,它可以分为 ...

  9. 数据结构与算法(八)二分搜索树(Binary Search Tree)

    本文主要包括以下内容: 二分搜索树的基本概念 二分搜索树的基本操作 1. 插入 2. 删除 3. 查询 实现二分搜索树 二分搜索树的不足 二分搜索树的基本概念 二分搜索树(英语:Binary Sear ...

最新文章

  1. 希尔排序(Shell's Sort)的C语言实现
  2. mac设置截图和录屏的快捷键
  3. 知乎高赞回答:是否有必要系统学习概率图模型?
  4. 【转】mybatis实战教程(mybatis in action)之八:mybatis 动态sql语句
  5. drawable如何只让两个叫圆角_cad怎么使用圆角?cad的圆角怎么使用?
  6. java模式匹配_用Java匹配模式
  7. java Map统计字符串中元素的数量
  8. 集群IPtables转发与防火墙
  9. Java知识点汇总1
  10. 数据科学入门与实战:玩转pandas之三
  11. 用Eclipse制作博客
  12. 数字城市厦门智慧防汛平台测试计划【软件测试与工程】
  13. QQ邮箱无法接受Python SMTP/POP邮件解决方案
  14. 【百度编辑器】修改上传图片缩略图大小
  15. 解决Git使用出现git@githubcom Permission denied (publickey)
  16. mat1 and mat2 shapes cannot be multiplied ( )的解决
  17. linux之lsv—NAT配置
  18. <金屋藏书>app 技术支持
  19. java爬虫系列(二)——爬取动态网页
  20. 英语点读笔市场太内卷 飞扫翻译笔靠实力“超车”

热门文章

  1. 你的微信朋友圈让你焦虑了吗?
  2. 【干货】硅谷创业教父:如何获得创业idea
  3. 【干货】产品经理常忽略的用户研究的四大误区
  4. Metrics-server插件安装配置
  5. 为什么说要重视神经网络加速器
  6. Elasticsearch 不同的搜索类型之间的区别
  7. [验证码识别技术]字符验证码杀手--CNN
  8. Unity Shader入门精要学习笔记 - 第6章 开始 Unity 中的基础光照
  9. 浅谈微软Windows Server 2012的性能指标
  10. WPF and Silverlight 学习笔记(二十):WPF数据绑定概述