본문 바로가기

하루 30분 알고리즘 기초다지기

(18)
피보나치 수열을 구하는 알고리즘 - 행렬 제곱 Fibonacci number 피보나치 수열이란 0번째 항은 0이고,  첫째, 둘째 항이 1이면 그 뒤의 모든 항은 바로 앞 두 항의 합인 수열이다. ex) 0, 1, 1, 2, 3, 5, 8 ... 점화식으로 표현하면 다음과 같다.   N번째 수 구하기1. recursion으로 해결하기 def fibonacci(int n): if(n == 0 or n == 1 ): return n else : return fibonacci(n-1) + fibonacci(n-2) 피보나치는 점화식을 참고하여 위와 같이 재귀호출로 간단하게 해결할 수 있다. recursion의 종료조건으로 n이 0일때는 0 n이 1일때는 1을 호출 할 수 있게 했다.  하지만 해당 알고리즘은 시간 복잡도가 좋지 못하..
파이썬 정렬 알고리즘 Sort Algorithms 데이터를 특정한 조건에 따라 일정한 순서가 되도록 다시 배열하는 일을 말합니다. 정렬알고리즘은 시간 복잡도에 따라 성능이 평가되고 성능이 좋을 수록 구현이 어려워집니다. 대표적인 정렬알고리즘입니다. simple sort Bubble sort (버블 정렬) Selection sort (선택 정렬) Insertion sort (삽입 정렬) complex sort Merge sort (병합 정렬) Quick sort (퀵 정렬) 정렬알고리즘의 time complexity를 비교해면 다음과 같습니다. time complexity는 n개의 입력에대해 알고리즘이 문제를 해결하는데 얼만큼의 시간이 걸리는지를 나타내는 것입니다. simple sort가 complex sort보다 time complexity가 높은것을 ..