일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 모의 SW 역량테스트
- a형
- SW역량테스트
- IOS
- hustoj
- 온라인저지시스템구축
- 비트마스킹
- 알고리즘
- oj구축
- 풀이
- 삼성기출
- 7576
- 역량테스트
- 삼성
- 온라인 저지 구축
- SWEA
- 소스코드
- SW Expert Academy
- SWIFT
- 모의 SW역량테스트
- 구축
- 역테
- oj
- 저지시스템구축
- 개발
- c++
- 백준
- STL
- BOJ
- xcode
Archives
- Today
- Total
꾸르꾸르
[C++/STL] binary search (이분 탐색) 본문
2018. 3. 8 에 쓰여진 글 입니다.
1. 이분탐색은 정렬 되어있는 경우에 한에서만 가능하다. (오름차순정렬일때만!)
2. 탐색효율이 좋고 탐색 시간이 적게 소요된다.
3. stl 이용할 경우 binary_search(v.begin(), v.end(), 찾을값) 을 하면 true 또는 false를 반환한다.
#include <iostream>
#include <vector> //vector위한 헤더
#include <algorithm> //binary search 위한 헤더
using namespace std;
vector < int > v;
int main()
{
v.push_back(1); //1넣기
v.push_back(5); //5넣기
v.push_back(3); //3넣기
sort(v.begin(), v.end()); //벡터 정렬
for (int i = 1; i <= 5; i++) {
if (binary_search(v.begin(), v.end(), i))
cout << i << "는 벡터 안에 존재합니다" << endl;
else
cout << i << "를 찾을수 없어요 ㅠㅠ" << endl;
}
return 0;
}
만약 정렬을 안했다면??
#include <iostream>
#include <vector> //vector위한 헤더
#include <algorithm> //binary search 위한 헤더
using namespace std;
vector < int > v;
int main()
{
v.push_back(1); //1넣기
v.push_back(5); //5넣기
v.push_back(3); //3넣기
//sort(v.begin(), v.end()); //벡터 정렬
for (int i = 1; i <= 5; i++) {
if (binary_search(v.begin(), v.end(), i))
cout << i << "는 벡터 안에 존재합니다" << endl;
else
cout << i << "를 찾을수 없어요 ㅠㅠ" << endl;
}
return 0;
}
관련문제
https://blog.naver.com/kms32123/221224431625
'코딩, 알고리즘, 문제풀이 > 문법,알고리즘,C++,기타등등' 카테고리의 다른 글
[C++] 팩토리얼 함수 구현하기 (0) | 2020.04.23 |
---|---|
[C++/STL] sort 내림차순 오름차순 (0) | 2020.04.23 |
[C++/STL] prev_permutation, next_permutation 순열찾기 (0) | 2020.04.23 |
[C++] xor 연산을 이용한 swap (0) | 2020.04.23 |
[C++] 비트마스킹, 비트마스크, 비트연산자 (0) | 2020.04.22 |
Comments