ABAP性能優(yōu)化技巧—使用二分查找(Binary Search)選項(xiàng)

???? READ命令使用順序查找數(shù)據(jù)表,這會(huì)降低處理速度胶哲。取而代之畔塔,使用binary search的附加命令,可以使用二分查找算法鸯屿,可以幫助加快內(nèi)表查找速度澈吨。

??? 在使用binary search之前必須首先將內(nèi)表排序,否則有可能找不到記錄寄摆,因?yàn)槎植檎曳磸?fù)將查找區(qū)間對(duì)半劃分谅辣,如果要查找的值小于查找區(qū)間的中間位置的數(shù)據(jù)項(xiàng)值,則查找區(qū)間將縮小到前半個(gè)區(qū)間婶恼,否則查找將局限于后半?yún)^(qū)間桑阶。

??? 不推薦使用:Read table int_fligh with key airln = ‘LF’.

??? 推薦使用:SORT int_fligh by airln. Read table int_fligh with key airln = ‘LF’ binary search.??? 二分查找

1、二分查找(Binary Search)  二分查找又稱折半查找勾邦,它是一種效率較高的查找方法蚣录。  二分查找要求:線性表是有序表,即表中結(jié)點(diǎn)按關(guān)鍵字有序眷篇,并且要用向量作為表的存儲(chǔ)結(jié)構(gòu)萎河。不妨設(shè)有序表是遞增有序的。

2铅歼、二分查找的基本思想  二分查找的基本思想是:(設(shè)R[low..high]是當(dāng)前的查找區(qū)間) (1)首先確定該區(qū)間的中點(diǎn)位置: [轉(zhuǎn)帖]SAPABAP性能優(yōu)化技巧—使用二分查找(BinarySearch)選項(xiàng) (2)然后將待查的K值與R[mid].key比較:若相等,則查找成功并返回此位置换可,否則須確定新的查找區(qū)間椎椰,繼續(xù)二分查找,具體方法如下:   ①若R[mid].key>K沾鳄,則由表的有序性可知R[mid..n].keys均大于K慨飘,因此若表中存在關(guān)鍵字等于K的結(jié)點(diǎn),則該結(jié)點(diǎn)必定是在位置mid左邊的子表R[1..mid-1]中,故新的查找區(qū)間是左子表R[1..mid-1]瓤的。 ⌒萜②類似地,若R[mid].keyK) high=mid-1; //繼續(xù)在R[low..mid-1]中查找 else low=mid+1圈膏; //繼續(xù)在R[mid+1..high]中查找 } return 0塔猾; //當(dāng)low>high時(shí)表示查找區(qū)間為空,查找失敗 } //BinSeareh 二分查找算法亦很容易給出其遞歸程序【參見(jiàn)練習(xí)】 4稽坤、 二分查找算法的執(zhí)行過(guò)程   設(shè)算法的輸入實(shí)例中有序的關(guān)鍵字序列為 (05丈甸,13,19尿褪,21睦擂,37,56杖玲,64顿仇,75,80摆马,88臼闻,92) 要查找的關(guān)鍵字K分別是21和85。具體查找過(guò)程【參見(jiàn)動(dòng)畫演示】

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末今膊,一起剝皮案震驚了整個(gè)濱河市些阅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌斑唬,老刑警劉巖市埋,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異恕刘,居然都是意外死亡缤谎,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門褐着,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)坷澡,“玉大人,你說(shuō)我怎么就攤上這事含蓉∑盗玻” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵馅扣,是天一觀的道長(zhǎng)斟赚。 經(jīng)常有香客問(wèn)我,道長(zhǎng)差油,這世上最難降的妖魔是什么拗军? 我笑而不...
    開封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任任洞,我火速辦了婚禮,結(jié)果婚禮上发侵,老公的妹妹穿的比我還像新娘交掏。我一直安慰自己,他們只是感情好刃鳄,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開白布盅弛。 她就那樣靜靜地躺著,像睡著了一般铲汪。 火紅的嫁衣襯著肌膚如雪熊尉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天掌腰,我揣著相機(jī)與錄音狰住,去河邊找鬼。 笑死齿梁,一個(gè)胖子當(dāng)著我的面吹牛催植,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播勺择,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼创南,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了省核?” 一聲冷哼從身側(cè)響起稿辙,我...
    開封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎气忠,沒(méi)想到半個(gè)月后邻储,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡旧噪,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年吨娜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片淘钟。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡宦赠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出米母,到底是詐尸還是另有隱情勾扭,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布铁瞒,位于F島的核電站妙色,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏精拟。R本人自食惡果不足惜燎斩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蜂绎。 院中可真熱鬧栅表,春花似錦、人聲如沸师枣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)践美。三九已至洗贰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間陨倡,已是汗流浹背敛滋。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留兴革,地道東北人绎晃。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像杂曲,于是被迫代替她去往敵國(guó)和親庶艾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容