RadarURL

조회 수 7888 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

이번엔 4장 알고리즘 분석 복습...

아마도 '재귀' 알고리즘 이후에 알고리즘 분석 챕터가 있는 것은,

이 챕터를 좀 더 이해하기 쉽게 하기 위해서인가 보다.

그렇다 하더라고 학교 수업에 들었던 기억을 떠 올리면, 꽤 지루했던게 기억난다.


알고리즘을 사용할 때, 그 알고리즘의 성능을 이해하는 것은 중요하다.

문제를 해결하기 위해 여러가지 알고리즘을 선택할 때도 효율적인 알고리즘을 선택할 수 있고,

(물론 단순히 알고 있어도 도움은 되겠지만, 이해하고 있다면 훨씬 낫겠지...)

또한, 어떻게 적절하게 사용할 것인지 계획을 세우는 데도 도움이 된다.

(책에서는 Garbage Collection 을 예로 들고 있다. 여기에 사용되는 알고리즘은 많은 시간이

 필요하기 때문에, 적당한 순간에만 사용하도록 해야한다. )


최악분석

알고리즘의 최악의 경우에 대한 성능을 분석하는 것이다.

여기에는 4가지 이유가 있는데,

1. 많은 알고리즘이 대부분의 실행에서 최악의 성능을 보인다. 예를들면, 탐색에서 원하는 자료를 찾지 못하는 경우...

2. 많은 알고리즘이 최상의 경우에 똑같은 성능을 보인다.

3. 평균 성능을 계산하는 것이 쉽지 않은 경우가 있다.

4. 최악의 경우는 성능의 상위 한계를 의미한다. 즉 분석 결과보다 더 나쁘게 실행되지는 않는다는 것을 보장한다.

   (내 생각에는 1, 4번이 제일 중요한듯...)

예외적으로 평균 성능을 근거로 해야 하는 경우는 있다. (예를들면, 퀵 정렬 같은 무작위 알고리즘)


O-표기법

이것은 알고리즘의 성능을 정형적으로 표현하는 가장 일반적인 표기법인다.

이것은 알고리즘의 복잡도(complexity)를 표현한다.

자료가 커짐에 따라, 성능이 어떻게 나빠지는지 나타내는지 보여준다고 생각하면 될 듯.

일반적으로 단순하게 아래와 같이 알고리즘의 복잡도를 표시한다.

(실제로는 상수를 포함한 식으로 표시된다. )


( 일반적인 복잡도와 거기에 해당하는 예. 복잡도가 낮은 순으로. n 은 자료의 갯수. )

복잡도  예

 O(1)

 자료 집합에서 첫번째 항목을 가져오는 것

 O(lg n)

 자료 집합을 반으로 나누고 그 반을 다시 반으로 나누는 과정을 반복

 O(n)

 자료 집합을 순회하기
 O(n lg n)
 자료 집합을 반복해서 둘로 나누고 나뉘어진 반을 순회하는 것

 O(n^2)

 한 집합의 각 자료에 대해 같은 크기의 다른 집합을 순회하는 것
 O(n^2)  집합의 모든 부분집합을 생성하는 것

 O(n!)

 집합의 모든 순열을 생성하는 것


그래프.jpg

(증가율을 표한한 그래프. 가로는 n = 자료의 크기, 세로는 T(n) = 알고리즘의 실행 시간을 나타냄.)

 

* 적절한 그래프 이미지를 찾지 못해 엑셀에서 직접 작업.

  가로/세로 축, 각 그래프 선에 대해서 레이블을 쓰고 싶은데, 옵션을 못 찾겠음.. (없는건지..)

  그냥 복잡도 순서대로 되어 있으니 참고. 그리고 O(1) 과 O(lg n)은 겹쳐서 안보이는 거임.


결론

특이한 경우가 아니면, 현업에서 이미 알려진 알고리즘에 대해서 알고리즘 복잡도를 분석할 이유가 없다.

각 알고리즘에 대해서 어느 정도의 성능을 나타내는가를 알고 있으면 된다고 생각한다.

우리가 할 수 있는것은 저 복잡도 계산에서 과다한 상수를 포함하지 않도록 하여

알고리즘이 효율적으로 동작하도록 하는 정도?

중요한 것은 위에서도 언급했듯이, 적절한 알고리즘을 적절하게 사용하는 것이다.

(적어놓고 나니 애매한데, 어쨌거나 현업에서는 여러가지 변수가 존재하니깐...)

 

출처 : http://azza.tistory.com/entry/C-로-구현한-알고리즘-4장-알고리즘-분석

?

공부 게시판

공부에 도움되는 글을 올려주세요.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 [공지] 공부 게시판 입니다. 처누 2003.08.18 2000900
225 논문 카­톡 gusim8003 급전/내구제 (24시문의) 폰테크 소액대출 선불폰 가개통 new 타오르는켄타우로스86 2026.10.05 0
224 취업 을지로가라오케 010 2817 0845 을지로 가라오케 예약 및 문의 속삭이는와이번53 2026.10.04 4
223 취업 카_톡 gusim8003 선불유심내구제 (24시문의) 작업대출 선불유심 급한돈 가전내구제 광휘의퀘이사33 2026.10.03 14
222 업무 강남안마❤️OlO-7593-9850❤️친절문의24시 #강남안마 #강남안마방 #강남클럽안마 #강남클럽식안마 #역삼동안마 #선릉안마 #삼성동안마 #대치동안마 #강남역안마 #논현동안마 괴랄한재규어89 2026.10.03 7
221 업무 텔ㄹH:@holysim 선불유심내구제 신용불량자대출 신불 회생 파산 소액대출 비대면대출 폰내구제 폰깡 텔레그램:@holysim 가개통 선불유심내구제 정식내구제업체 선불폰삽니다 비상금대출 빠져드는환영18 2026.10.03 9
220 논문 EMR을 기반으로 DW를 구축한 병원의 CRM 활용 방안 연구 = The Study on a Plan to Activate Customer Relationship Management through Data Warehouse based on Electronic Medical Record of Hospitals YooN 2026.02.06 4051
219 업무 로그인 구글 드라이브 안 쓰고 시놀로지 드라이브 쓰는 이유, 설정 방법 & 활용팁 YooN 2026.01.08 3833
218 업무 알아두면 좋은 직장인 용어 정리 file YooN 2025.04.15 3244
217 업무 국내에서 의사가 되는 로드맵 file YooN 2024.07.02 3033
216 업무 병원 의학 용어 정리 - 병원 과별 축약어 (ent, os, ps, gs, np, obgy, cv, NE, ID, er, ur, em, ge, pd, nicu..) YooN 2024.04.09 3136
215 업무 모달리티(Modality) file YooN 2024.02.06 3418
214 업무 [ 개발자 업무 파악 ] SI와 SM의 차이와 하루일과 출처: https://bnitech.tistory.com/19 [코딩몬의 하루:티스토리] YooN 2023.12.29 4493
213 업무 의과 대학에서 받는 학위의 종류와 과정에 대한 이야기 file YooN 2023.12.07 4212
212 업무 ARO(Academic Research Organization), CRO(Contract Research Organization) 차이 YooN 2023.06.23 3385
211 취업 계약직 직원 지칭하는 명칭 : 임기제(계약직), 개방형직위, 별정직, 전문직위제, 기간제 등 file YooN 2023.05.10 4515
210 업무 (자격증) AWS아키 따는 법 -2023 YooN 2023.04.10 3048
209 업무 기술사 학습 루틴 file YooN 2023.04.10 3096
208 업무 정보처리기술사 독학 vs 학원 YooN 2023.04.10 3089
207 업무 IT 기술사회 정보관리기술사 컴퓨터시스템응용기술사 공개설명회 YooN 2023.04.10 3139
206 업무 정보관리냐? 컴퓨터시스템응용이냐? 선택의 기로에 있다면 YooN 2023.04.10 2996
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 12 Next
/ 12


즐겨찾기 (가족)

JAESOO's HOMEPAGE


장여은 홈페이지


장여희 홈페이지


장여원 홈페이지


즐겨찾기 (업무)

알리카페 홀릭

숭실대 컴퓨터 통신연구실 (서창진)

말레이시아 KL Sentral 한국인 GuestHouse


즐겨찾기 (취미)

어드민아이디

유에코 사랑회

아스가르드 좋은사람/나쁜사람

JServer.kr

제이서버 메타블로그

재수 티스토리


즐겨찾기 (강의, 커뮤니티)

재수 강의 홈페이지


한소리


VTMODE.COM


숭실대 인공지능학과


숭실대 통신연구실


베너