티스토리 뷰

728x90
반응형

이번 포스팅은 가장 기초적이면서 원시적인 알고리즘 설계 방법론입니다.

 

이름하야 Brutal 방법론.

 

한국어로는 대충 단순방법론 이라고 할수있겠네요 ^_^;;

 

가장 쉬운 설게방법 이면서, 일반적으로 최고의 비효율을 보여줍니다.

 

탐색 알고리즘을 예로 들어보겠습니다.

def find_value(list, value):
    for i in list:
        if i == value:
            return Ture

find_value([9,4,8,7,5,3,1,2,1,64,9,7,6,2,6,3,4,8,99],99) 

위 같은경우 Element가 n개 있을 경우 n개의 모든 원소에 대해서

 

처음부터 순차적으로 찾는 값과 동일한지 여부를 확인하는 알고리즘 입니다.

 

동일한 비교문을 n개의 Element에 적용하기 때문에

 

시간복잡도로 보면 O(n)의 성능을 보여줍니다.

 

그렇다면, 다른 탐색알고리즘은 어떻까요?

 

-. 이진탐색 알고리즘은 O(log(n))의 점근성능을

 

-. 해시탐색 알고리즘은 O(n/Tkey의 개수)의 점근성능을 보입니다.

물론 다른 탐색알고리즘은 정렬 or Hash Table의 구축이 선행되어야 합니다.

 

하지만, 단순탐색은 탐색을 할 때 마다 O(n)의 시간복잡도를 언제나 요구하게 됩니다.

 

 

Brutal 알고리즘 방법론의 이러한 특성 때문에(설계는 쉬우나 비효율적)

 

처음에 Brutal 알고리즘으로 Code 의 Feasblity를 확인하고

 

추후에 다른 알고리즘 방법론으로 알고리즘 성능을 높히는것이 좋습니다.

728x90
반응형

'Python 알고리즘 > 알고리즘이론' 카테고리의 다른 글

욕심쟁이 방법론  (0) 2021.03.19
동적 프로그래밍 방법론  (0) 2021.03.18
분할정복 방법론  (0) 2021.03.17
알고리즘의 점근성능  (0) 2021.03.15
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함