목록2024/11/13 (3)
컴퓨터공학 💻 도서관📚
이진 탐색은 정렬되어 있는 리스트에서 특정한 데이터를 빠르게 탐색할 수 있도록 해주는 탐색 알고리즘이다 [ 이진 탐색 예시 ] 중간점을 구할 때 소수점 이하는 제거한다. 끝점이 중간점 왼쪽으로 움직여 새로운 끝점이 된다 시작점이 중간점 오른쪽으로 움직여서 새로운 시작점이 된다. 이진탐색 파이썬 예시 1 : 재귀함수 버전 이진탐색 파이썬 예시 2 : 반복문 버전 C++에서는 하나의 배열 정보를 받을 때 1. 포인터를 사용하거나 2. vector 라이브러리를 사용하되 별도로 변수를 카피하지 않고 이미 존재하는 vector 변수의 래퍼런스를 전달해야 한다 만약 &(앰퍼샌드)를 빼주게 되면 이 함수를 호출할 때 기존 vector에 담겨 있던 값을 카피하기 때문에 시간복잡도가..
병합정렬은 데이터를 가장 작은 단위까지 분할한 다음 정렬하면서 다시 병합하는 알고리즘이다. 병합정렬의 시간복잡도는 O(N*logN) 이다. (약 2천만) [병합정렬 예시 1] [병합정렬 예시 2] : 데이터의 총 개수가 홀수인 경우 데이터의 총 개수가 홀수일 경우에는 분할 과정이 남았지만 더 이상 분할할 수 없는 그룹이 존재하게 된다. 이 때는 모든 분할 과정이 끝날 때까지 계속 1개의 원소를 유지합니다. 분할정복 알고리즘 : 하나의 문제를 동일한 유형의 작은 문제들로 분할한 다음에 작은 문제에 대한 결과를 조합해서 큰 문제를 해결하는 방식의 알고리즘분할 정복 알고리즘은 보통 재귀 함수로 구현된다는 특징이 있다.