Дихотомический поиск в стандартной таблице.

4. Дихотомический поиск в стандартной таблице.

Мы уже ранее убедились, что дихотомический поиск быстрее сплошного. Также известно, что в стандартных внутренних таблицах также можно устраивать дихотомический поиск для чего можно использовать фразу BYNARY SEARCH. Не забудем, что для того, чтобы это работало без ошибок, стандартную таблицу нужно отсортировать по тем полям, по которым будет осуществляться поиск. Добавим в предыдущую программу (REPORT  ZQK003) дихотомический поиск по стандартной таблице и измерим его продолжительность. Заодно замерим время , потребное на сортировку стандартной внутренней таблицы.

REPORT  ZQK004.
data
  : begin   of gs
  ,   nnn type n length 10
  , end     of gs
  , gt1   like standard table of gs with non-unique key nnn
  , gt2   like sorted   table of gs with unique key nnn
  , gt3   like hashed   table of gs with unique key nnn
  , a type i, b type i
  , t1 type i, t2 type i, t3 type i, t4 type i, t5 type i
  , count type i
  , goal  like gs-nnn
  .
parameters power type i default 20.

start-of-selection.
  do power times.
    count = 2 ** sy-index.
    refresh gt1.
    do count times.
      gs-nnn = sy-index.
      append gs to gt1.
    enddo.
    gt3 = gt2 = gt1.
    goal = count - 1.

    get run time field a.
    get run time field a.
    read table gt1 into gs with table key nnn = goal.

Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland

У вас уже есть учетная запись?

Войти