2017/07/05 3

Python으로 알고리즘 공부 06. 소수 (Prime number)

소수판별1. 에라토스테네스의 체고대 그리스 수학자 에라토스테네스가 발견한 소수 찾는 방법.N보다 작은 소수들을 찾으려면, 2보다 크거나 같고 ​보다 작은 소수의 배수들만 지우면 된다.예를 들어, 120보다 작은 소수들을 모두 찾고 싶다면, ​ 이므로 2, 3, 5, 7의 배수만 지우면 남은 수는 모두 소수가 된다.작은 수의 소수를 판별하는 데 유용하다. def is_prime(num): if num

아카이빙 2017.07.05

Python으로 알고리즘 공부 05. 퀵 셀렉션 (Quick Selection)

퀵 셀렉션 (Quick Selection) 파이썬으로 구현퀵 셀렉션은 리스트를 정렬하지 않고 K번째로 큰 수를 알고 싶을 때 쓰는 방법이다.전체적인 솔루션은 퀵 정렬과 매우 유사하다, 피벗을 하나 골라서 값을 비교하면서, 피벗보다 작은 리스트, 피벗 보다 큰 리스트로 나눈다.k번째 숫자가 속해있는 리스트만 가지고 다시 재귀적으로 반복한다.median 값을 찾을 때도 활용 가능.평균 시간복잡도는 O(n) def quick_selection(arr, kth): pivot = arr[(len(arr)+1)//2 - 1] left, mid, right = [], [], [] for i in range(len(arr)): if arr[i] pivot: right.append(arr[i]) else: mid.app..

아카이빙 2017.07.05