이진 검색이 이진 검색이라고하는 이유는 무엇입니까?


9

몇 가지 가능한 설명을 들었으므로 신뢰할 수있는 참조를 원합니다.

05.19 업데이트 : 내 학생 중 한 명이 자신의 논문에서 그 이름이 아래 설명 (1)에서 유래했기 때문에이 질문에 관심이 있습니다. 지금까지 나는 그것이 설명 (2)에서 온 것이라고 생각 / 들었다. 나는 그의 논문에서 잘못된 것을 내버려두고 그것이 옳다면 그것을 제거하라고 말하는 것에 대해 나쁘게 느낄 것이다.

(1) 간격의 정수 검색을 고려하십시오 . 단계 에서 숫자의 이진수 를 요구 하여 질문을 사용하여 찾을 수 있습니다.[0,21]나는나는h

(2) 요소 가 검색 공간이있는 경우 나머지 공간 부분을 개로 반복해서 나누는 질문으로 알 수없는 요소를 찾을 수 있습니다 .2

그리고 그렇습니다. (2)는 (1)과 동일한 알고리즘을 제공 할 수 있지만 여기서는 그 점이 아닙니다. (2) 더 일반적인 문제에 적용 할 수도 있습니다.


1
또한 질문은 참조를 요구한다는 점에 유의하십시오. 신뢰할 수있는 출처를 제공하지 않으면 서 그런 이유 때문이라고 대답하지 마십시오.
David Richerby

1
@DavidRicherby, 아니요, 호기심은 "신뢰할 수있는"참조를 요구하기에 충분한 동기가 아닙니다. 호기심 "이진 검색이 이진 검색이라고하는 이유"를 묻는 데 충분한 동기 될 수 있지만 참조 / 신뢰할 수있는 출처를 요구하는 충분한 이유는 아니며 "설명으로 대답하지 마십시오. 신뢰할 수있는 출처를 원합니다. " OP가 여러 개의 상충되는 설명을 발견 한 경우 OP는 질문에서 그에 대해 알려 주어야합니다 (Math.SE 질문은 상충되는 설명으로 이어지지 않음).
DW

3
나는 당신이 어떤 설명을하는 것으로 시작해야한다고 생각합니다. 그들이 받아야 할 신뢰에 대한 아이디어가있을 수 있습니다. 그리고 이진 검색이라고 부르는 것에 대한 자신의, 바람직하게는 정확한 정의를 주면 동일한 개념에 대해 이야기하거나 대안으로 그러한 정의에 대한 참조를 제공 할 수 있습니다.
babou

2
크 누스 TAoCP 3 권 내 사무실에있다 ...
Hendrik 1

답변:


1

설명 (2)는 좋은 설명입니다.

(2)는 두 가지에 대한 더 나은 설명입니다. 이는 일반적으로 하나의 특정 인스턴스가 아니라 이진 검색의 모든 용도에 적용되기 때문입니다. (1) 그것에 대해 생각하는 비합리적인 방법은 아닙니다. (2)만큼 일반적이거나 완전하지는 않습니다.

학생이이 진술을 수정하도록 요구할 의무가 있다고 생각하지는 않습니다. 학생이 논문에 설명 (1)을 주었다면 당황하지 않을 것이므로 기분이 나쁠 필요는 없습니다. 그러나 그들에게 무언가를 가르치고 싶다면 설명 (2)와 이진 검색이 더 일반적인 방법과 왜 "이진 검색"이라는 이름이 일반 알고리즘에 적합한 지에 대해 말할 수 있습니다. 그러나 그것은 사소한 점이며, 그대로 물건을 남겼을 때 문제가되거나 창피하다고 생각하는 것이 아닙니다.


심판은 없다! 더 역사적인 질문처럼 보인다 :(
vzn

1

Wikipedia에 따르면 이진 검색 은 정렬 된 값의 배열로 검색하는 것과 관련이 있습니다.

검색 공간을 반복해서 분할하여 검색을 나누고 정복하는보다 일반적인 개념을 이분법 검색 이라고합니다 (문자 적으로 : "두 개로 자름"). 이분법의 사용은 다른 맥락에서, 분리 할 무언가가있는 것처럼 보일 수 있습니다. 이진이라고 부르는 경우를 포함하여 실제로 내가 배운 첫 번째 표현입니다 (고등학교에서 생각합니다.

Afaik, "이분법"은 두 부분이 (거의) 동일하다는 것을 의미하지 않습니다.

바이너리가 크기가 큰 공간에서 검색되도록 예약되어 있음을 모르겠습니다. 2.

이분법은 분명히 더 일반적인 용어이지만 바이너리를 부적절하게 사용하는 일부 사람들에게는 현명하게 들릴 수 있습니다.

의식적으로 이진수를 요구하지 않고 구간의 중앙값과 비교하기 위해 귀하의 예 (1)이 이상하게 언급되었습니다. 그러나 바이너리로 자격이 될 수 있습니다.

예 (2)가 명확하지 않습니다. 둘로 나누는 것을 이분법이라고합니다. 이제, 당신이 (이상하게) 두 부분을 동등하게 만드는 방법을 가정하는 것처럼 보이지만 확실하지 않습니다.

그러나 사람들이 예 또는 아니오로 대답하는 질문을하는 추측 게임은 분명히 이분법입니다.

내 자신의 추측, 참조가 없습니다 :

원래 표현은 아마도 "이분법 적"일 것이지만, 이진 시스템, 이진 컴퓨터 등의 인기로 인해 "이진"이라는 용어가 더 많이 사용되었습니다.

중요한 역할을 할 수있는 또 다른 요인은 이진 검색 (이분법)이 이진 선택을 기반으로한다는 것입니다. 이제 " 이분법적인 선택 " 이라는 표현 이 존재하지만 웹에서 약 6 배 더 자주 나타나는 " 이진 선택 " 보다 훨씬 덜 사용됩니다 .

이것이 영향을 미쳤을 수 있습니다. 비록 우리가 이진 숫자에 많이 몰두하고 있지만 (컴퓨터 과학자), 대부분의 사람들은 이진 숫자에 관심이없고 걱정하지 않지만 이진 선택에 대해 쉽게 이야기 할 것입니다. 이진 검색은 컴퓨터 과학자에게는 주제이지만, 이진 수는 직접적인 방법으로 믿지 않을 것입니다.


"Wikipedia에 따르면, 이진 검색은 정렬 된 값들의 배열에서의 검색에 관한 것이다." 글쎄, 그건 내가 Wikipedia를 읽는 방법이 아닙니다. 이진 검색으로 계산하기 위해 Wikipedia가 배열에 있어야한다고 말하면 Wikipedia는 논쟁의 여지가 있다고 생각하지만 Wikipedia 기사는 그렇지 않습니다. Wikipedia 기사에 따르면 이진 검색은 "단일 함수의 인수를 통해 임의의 값에 도달하는 지점에 대한 인수를 검색 할 수 있습니다"는 배열에서 검색하지 않습니다.
DW

"검색 공간을 반복해서 분할하여 더 일반적인 분할 및 정복 검색 개념을 이분법 검색이라고합니다." -이는 내 경험과 일치하지 않습니다. 나는 일상적으로 이진 검색이라고합니다.
DW

@DW 이전에 말씀 드린 것처럼 내 기억은별로 중요하지 않습니다. 그러나 이진 검색, 심지어 분할 및 정복은 컴퓨터와 함께 우리에게 온 알고리즘 용어입니다. 그러나 나는 이분법 적 검색에 대해 처음 들었을 때 주변에 많은 컴퓨터가 없다고 생각합니다. 그렇다면 좋은 인쇄 참조가 나의 기억력보다 훨씬 좋을 것입니다. Wikipedia에 관해서는 기사 전체를 읽지 않았습니다. 기본적으로 나는 결정적인 대답을 얻을 것이라고 생각하지 않았다. 이 아이디어는 일반적이며 용어가 훌륭하며 각 문제에 맞게 조정되어야합니다.
babou


1

나는 Knuth가 인용 한 Mauchly 참조를 찾으려고했지만 내 도서관이 사본을 잘못 놓은 것 같습니다.

그 동안 "이진 검색"에 대한 다음과 같은 초기 인용을 고려하십시오.

  • 할펜, 마크 " 이진 검색 기능이있는 가변 폭 테이블. "ACM 1.2 (1958)의 통신 : 1-4.

    이 보고서에 설명 된 서브 루틴 제품군은 서로 다른 길이의 항목을 포함해야하지만 분할 또는 "이진"검색으로 검색 할 수있는 테이블을 작성, 검색 및 유지 보수하도록 설계되었습니다.

  • Nagler, H. " 두 가지 내부 분류 방법의 상대 효율 추정. "ACM의 통신 3.11 (1960) : 618-620.

    이 보고서는 IBM 705, 모델 I 및 II에 관한 것입니다. 이는 두 가지 내부 정렬 방법 (일반적인 양방향 병합)과 IBM Corporation의 D. Mordy로 인한 이진 검색 형식에 필요한 기계 시간에 대한 연구입니다.

  • Petersen, TL 재입국 차량 합성 프로그램. STL / TR-60-0000-09103 (pdf 링크) . TRW SPACE TECHNOLOGY LAB ANOSLES CA, 1960 년

    의 가치 V0 어떤 (V0)=0지금 찾아야합니다. 쉽게 볼 수 있습니다(0)=케이1(케이1)=1필요한 값을 V0 0과 0 사이 케이1 만약 케이>1. 이진 검색은(V0); 그만큼V0 연속적인 값들 사이의 차이의 절대 값이 선택된 것 V0 보다 작다 0.01.

첫 번째 1958 인용이 "이진"주위에 따옴표를 사용하는 방법에 주목하지만 1960 년의 세 번째 인용에서는 더 이상의 설명이나 설명없이 이진 검색을 언급합니다. "파티션 별 검색"에 대한 암시는 설명 2)가 더 가깝다는 것을 암시하지만 추가 검증이 필요합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.