이진 검색의 고전적인 사용은 정렬 된 배열에서 값을 검색하는 것입니다. 먼저 배열의 중간을 확인하여 찾고 있는 내용이 포함되어 있는지 확인합니다. 더 이상 고려할 항목이 없는 경우 중지합니다. 그렇지 않으면 대답이 중간 요소의 왼쪽 또는 오른쪽에 있는지 여부를 결정하고 검색을 계속합니다. 각 검사 후 검색 공간의 크기가 절반으로 줄어들면 알고리즘의 복잡성은 O(log n)입니다. C ++ STL은 우리가 다양한 프로그래밍 작업을 달성하는 데 도움이 유용한 기능을 많이 가지고 있습니다. 이러한 기능 중 하나는 “불일치()”입니다. “알고리즘” 헤더 파일에 정의된 이 함수는 불일치에 대한 2개의 컨테이너를 비교하는 데 도움이 됩니다. 이 함수에는 2가지 버전이 있습니다.

둘 다 이 문서에서 설명합니다. 정렬이 가장 비용이 많이 드는 작업이므로 알고리즘은 O(n log n) 시간에 실행됩니다. {(60, 10), (100, 20), (120, 30)}의 세 가지 항목으로 구성된 쌍(값, 가중치) 쌍이 주어지면 총 용량 W=50은 위의 코드에서 다음과 같은 출력을 생성합니다. 사용자는 연속 범위를 선택한 다음 알고리즘이 이 범위를 가져와 목록의 다른 장소로 이동합니다. 대부분의 알고리즘에는 실행 정책을 허용하는 오버로드가 있습니다. 표준 라이브러리 알고리즘은 여러 실행 정책을 지원하며 라이브러리는 해당 실행 정책 유형 및 개체를 제공합니다. 사용자는 해당 형식의 실행 정책 개체와 병렬 알고리즘을 호출하여 정적 실행 정책을 선택할 수 있습니다. 물론.

슬라이드와 수집 : 나는 원래 “C ++ 조미료”이야기에서 두 가지 눈에 띄는 예를 건너 뛸 수 없습니다. 나는 빠른 정렬 알고리즘을 설명하지 않습니다 … 당신은 이미 어떻게 작동하는지 알아야합니다! 이 구현에서 std::nth_element는 대부분의 작업을 수행하는 데 사용됩니다. 이 함수는 주어진 n-th 요소가 적절한 위치에 배치되도록 범위를 부분적으로 정렬합니다. n-th 요소 이전의 모든 요소는 n-th 요소 다음의 요소보다 적거나 동일합니다. 표준 라이브러리 구현(사용자 제외)은 추가 실행 정책을 확장으로 정의할 수 있습니다. 구현 정의 형식의 실행 정책 개체로 호출된 병렬 알고리즘의 의미 체계는 구현 정의입니다.