二分查詢測試 查詢的索引行號

2021-08-26 14:39:45 字數 1567 閱讀 2671

根據訂單號加物料號 作為查詢key

二分查詢資料為下

"二分查

loop at lt_resb assigning field-symbol().

read table gt_resb into gs_resb with key aufnr = -aufnr

matnr = -matnr

binary search.

if sy-subrc = 0.

if lv_index = 0.

lv_index = sy-tabix. "第一次查詢

else.

lv_index2 = sy-tabix. "第二次查詢

endif.

endif.

endloop.

"非二分查

loop at lt_resb assigning .

read table gt_resb into gs_resb with key aufnr = -aufnr

matnr = -matnr

.if sy-subrc = 0.

if lv_index3 = 0.

lv_index3 = sy-tabix. "第一次查詢

else.

lv_index4 = sy-tabix. "第二次查詢

根據除錯結果 可以發現 二分查詢的行號索引 和普通查詢的行號索引 一致 

二分查詢可能並不是單純從中間取數

可能剛開始查數 從中間查擴充套件兩邊查詢 但最後也做了其他處理 保證查詢時 取到第一條符合條件的行號索引

換下另一種情況查詢資料 

結果一致 

順序查詢 二分查詢 索引查詢

1.查詢技術的分類。如下圖 2.什麼是順序查詢呢?無序表 順序查詢的原理很簡單,就是遍歷整個列表,逐個進行記錄的關鍵字與給定值比較,若某個記錄的關鍵字和給定值相等,則查詢成功,找到所查的記錄。如果直到最後乙個記錄,其關鍵字和給定值比較都不等時,則表中沒有所查的記錄,查詢失敗。時間複雜度是o n 3....

二分查詢邊界索引

問題說明 給你乙個公升序整數陣列nums,和乙個目標值target,請返回它在nums陣列中的左邊界索引和右邊界索引 例如 nums target 3,那麼就應該返回左邊界索引2和右邊界索引4 問題分析 我們先看如果是平常我們熟悉的二分查詢法,找到乙個值就返回它的索引,這種 是這樣的 public ...

二分查詢的平均查詢長度 二分查詢

資料的查詢在計算機的操作中非常常見,那麼我們應該怎樣在計算機中實現查詢操作呢?最簡單的一種方法 傻找 也就是乙個乙個的找,我們把陣列中的每個元素都和我們想要查詢的目標元素進行比對,看一下列表中是否有和這個元素相同的元素,如果我們想要尋找的那個目標元素在列表 現了,那麼就宣告查詢成功,這種演算法寫成 ...