목록스터디/알고리즘 (2)
올해는 머신러닝이다.
배열과 연결된 리스트의 장단점2장에서는 주된 설명은 배열과 연결된 리스트에 대한 비교 설명이 있었다.배열은 검색이 빠른 반면 삽입이 느리다는 것연결된 리스트의 경우 삽입이 빠르지만 검색부분에선 배열보다 느리다는 장단점이 있다.선택정렬 (Selection Sort)2번째 알고리즘 문제이다.만약 주어진 배열이 있으면 그 배열을 정렬하고자 할 때 선택정렬을 사용할 수 있다.기본 흐름은 다음과 같다. (순차적 정렬시)배열에 가장 작은 값 검색가장 작은 값 위치 값 획득그 위치 값을 배열에서 제거 하고 새로운 배열에 하나씩 추가함그렇게 해서 최종 새로운 배열로 결과값을 보여줌Python3 으로 구현시 다음과 같다.def findSmallest(arr): smallest = arr[0] smallest_index ..
이진탐색 (Binary Search)시나리오1~1000개 숫자 의 배열에서 특정 숫자만 뽑아내고 싶을 경우 어떻게 해야 될까?리스트로 한개씩 넣어서 검색해서 운좋으면 빠른 시간안에 검색이 될 수 있으나 최악의 경우 1000번의 수행을 해야 한다.이진탐색 알고리즘을 통해서 전체의 반을 검색하고 다시 반을 검색하는 방법을 사용할 수 있다.예를 들어 100의 중간 50부터 시작되는 함수로 시작된다4번만에 답을 찾은 경우이다. 그럼 log2 16 = 4 이라고 표시한다.즉 로그는 거듭제곱의 반대말이다.지수표현이 잘 안됨..10^2^ = 100 -> log10100 = 210^3 = 100 -> log101000 = 32^3 = 8 -> log28 = 3 (결과값을 앞으로 보내면 된다.)2^4 = 16 -> lo..