Um dado programa COBOL possui os trechos abaixo em sua estrutura:
• na working-storage section
01 TABELA.
05 ELEMENTO OCCURS 70 TIMES
ASCENDING CURSO, MATRICULA
INDEXED BY IND.
10 CURSO PIC X(10).
10 MATRICULA PIC X(05).
10 NOME PIC X(30).
• na procedure division
SEARCH ALL ELEMENTO
AT END DISPLAY "NAO ACHOU"
WHEN CURSO (IND) = "COBOL" AND
MATRICULA (IND) = "99887"
DISPLAY "ACHOU"
END-SEARCH.
Ao analisar os trechos acima, verifica-se que
a cláusula ASCENDING garante que a tabela está ordenada crescentemente pelos campos CURSO e MATRICULA, e o comando SEARCH ALL executa uma pesquisa binária na tabela.
o comando SEARCH ALL executa uma pesquisa binária corretamente na tabela desde que a mesma esteja previamente ordenada, pois a cláusula ASCENDING não garante que a tabela está ordenada crescentemente pelos campos CURSO e MATRICULA.
a cláusula ASCENDING garante que a tabela está ordenada crescentemente pelos campos CURSO e MATRICULA, e o comando SEARCH ALL executa uma pesquisa sequencial abrangendo todos os elementos da tabela.
o comando SEARCH ALL executa uma pesquisa sequencial abrangendo todos os elementos da tabela, porém a cláusula ASCENDING não garante que a tabela está ordenada crescentemente pelos campos CURSO e MATRICULA
a definição da cláusula ASCENDING é desnecessária para executar o comando SEARCH ALL, se a tabela se encontra ordenada.