메뉴 건너뛰기

SAP 한국 커뮤니티

[요청]Binary Search의 원리에 대한 질문

수욕정이풍부지 2009.02.12 11:16 조회 수 : 3821

안녕하세요?


ABAP 4년차인데요..


늘상 사용하는 Binary Search이지만 ABAP에서의 근본적인 원리가 갑자기 궁금해져서 질문을 드립니다.


전산학과 출신이라서 기본적인 알고리즘은 알고 있습니다.


Search하고자 하는 필드의 순서대로 Sort를 한 후에


이진 트리를 이용하여 중간값과 찾고자하는 값을 비교하여 검색하기 때문에


대상건수가 많을수록 속도는 일반 Search에 비해서 기하급수적으로 빨라지겠죠..


예를 들어 1000 건을 대상으로 Search를 하게 되면


일반 Search는 1000/2  = n 이므로 평균 500번의 탐색속도를 가지게 될거고


Binary Search는 2ⁿ = 1000이므로 최대 10번 정도의 탐색속도를 가지게 되는 걸로 알고 있습니다.


 


그런데 프로그래밍을 하면서 일반 Search든 Binary Search든 중복되는 값이 있을때는


가장 첫번째 값을 찾아온다는 것은 이미 수많은 경험을 통해서 익히 알고 있습니다.


궁금한 것은 일반 Search는 순차적으로 Read하므로 위 결과가 당연하다고 생각되지만,


Binary Search는 중간값을 비교하는데 왜 항상 첫번째 값을 읽어오느냐 하는 것입니다.


 


아래와 같은 Internal Table이 있다고 가정하고 질문을 드리면


 


Index   A    B


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


  1       1    a  


  2       2    b


  3       3    c


  4       3    d


  5       4    e


  6       5    f


  7       6    g


 


위에서 Internal table은 A라는 필드로 이미 Sort가 되어 있는 상태입니다.


 


여기서 READ TABLE itab WITH KEY A = '3' BINARY SEARCH 라는 명령을 하게 되면


세번째 Index를 읽게 되고 B값은 'c'가 될 겁니다.


하지만 알고리즘 접근을 하게 되면 총 7건의 Record이므로 중간값인 4번째 index를


읽어서 B값은 'd'가 되어야 맞는게 아닌가 하는 의문이 문득 들었던 적이 있었거든요..


 


ABAP에서 Bianry Search를  할 때 알고리즘을 어떻게 적용해서 사용하는건지 알고 싶네요.


물론 실질적인 프로그래밍을 함에 있어서는 쓸데없는 질문이 될수도 있겠지만  궁금한 건 못참는 성격이라서.. ^^


다시 한 번 말씀드리지만 Search 결과를 물어보고자 하는게 아니라


중복값의 Search가 정확히 어떤 방식으로 이루어지는지 혹시 알고 계시면 답변 주시면 감사하겠습니다. 


다들 수고하세요~


 

번호 제목 글쓴이 날짜 조회 수
312 [re] <img src=2.gif>소수점 이하 0 지우기 (소수점 값이 없는 부분만 ) kkamui 2009.11.09 3760
311 <img src=3.gif>엑셀 업로드 시 이런경우가 발생할 수 있는지요. [7] 열공합시다 2010.12.29 3761
310 <b>[완료]</b>abap editer 폰트 설정 문의 드립니다. [1] file 가오만땅 2008.01.22 3767
309 select 문에서 inner join , out join 관한 질문.. [1] bd 2007.03.09 3770
308 [re] alv 출력시 컬럼수를 dynamic하게하는 방법 현군친구 2007.09.19 3785
307 [요청]alv 이벤트관련해서 여쭤볼께요 핫스팟 디테일리스트 떠블클릭 [5] 나도될까 2008.05.21 3794
306 <img src=3.gif>RFC Function을 사용하여 BDC 실행을 하는 도중 에러 문제.. [7] 파초선 2010.07.27 3797
305 <b>[완료]</b>OBLIGATORY가 정확히 어디에쓰이는지.. 어떤것인지 궁금합니다.. 허접한 질문임다...^^ [5] 아밥입문자 2008.01.17 3799
304 <b>[완료]</b> mainternance view(유지보수 뷰) 필드순서 [5] file redlemon14 2008.09.30 3803
303 <img src=2.gif>SELECTION-SCREEN의 라디오버튼 더블클릭과 엔터 그리고 SELECT-OPTIONS의 연관성 [3] 츄리닝 2011.03.31 3808
302 [요청]like line of과 type line of 차이는? [5] 로미오 2008.09.01 3812
301 <img src=3.gif>숫자와문자로 조합된 text를 넣으면 숫자만 나오게 하는 펑션 있나요? [5] 기쁨 2010.10.06 3812
300 <img src=3.gif border=0>SAP에서 글자를 마우스 블록 씌었을 때 복사되는 옵션을 어떻게 설정하나요? [3] 도움이 2009.07.10 3813
299 [re] T-CODE SMW0 에 대해서 아시는분 없나요? [7] file sapjoy 2007.01.31 3815
298 <img src=2.gif>스마트폼에서 제목이나 필드명을 바꾸었지만, 계속 다른 폼의 값이 나오는 현상에 대한 문의드립니다. [1] file 하오 2010.01.11 3817
» [요청]Binary Search의 원리에 대한 질문 [4] 수욕정이풍부지 2009.02.12 3821
296 <img src=3.gif>PROCESS ON VALUE-REQUEST. 서치헬프질문요 [3] 덩콘 2010.05.11 3823
295 [요청]인터널 테이블을 이용한 필드 카탈로그를 가져올 때..... [5] 효방 ^-^ 2008.09.18 3845
294 <b>[완료]</b>smartform에서 새로운 page로 찍으려면 [7] file w 2007.12.04 3848
293 [요청]ALV GRID에서 EDIT기능 이용시 질문요~! [1] 풍운사랑 2008.06.30 3854