알고리즘 4

이진 탐색 알고리즘

순차 탐색: 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 확인하는 방법 이진 탐색: 정렬되어 있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법 (시작점, 끝점, 중간점을 이용해 탐색 범위를 설정한다.) 단계마다 탐색 범위를 2로 나누는 것과 동일하므로 연산횟수는 log2N에 비례한다. 즉, 시간 복잡도는 O(logN)을 보장한다. # 이진 탐색 소스코드 구현 (재귀 함수) def binary_search(array, target, start, end): if start > end: return None mid = (start + end) // 2 # 찾은 경우 중간점 인덱스 반환 if array[mid] == target: return mid # 중간점의 값보..

Algorithm/algorithm 2022.08.24

n개의 수 중 최솟값 찾기

#include #define SIZE 100 int findmin(int arr[],int n,int min); int main(){ int n; int arr[SIZE]={0,}; int i, min; scanf("%d",&n); for(i=0;iarr[n-1]){ min=arr[n-1]; findmin(arr,n-1,min); } else { findmin(arr,n-1,min); } } } n개의 정수를 입력받은 후에 재귀함수를 이용하여 최솟값을 찾는 함수이다. for문으로 쉽게 구할 수 있지만 평소에 잘 쓰지 않았던 재귀함수를 이용하려니 어려웠다..

Algorithm/Problems 2020.04.10