RadarURL

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

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
시간 복잡도(알고리즘)
 

0. 들어가기 앞서서
 

자료구조와 알고리즘을 배울때 핵심은 공간과 시간 이용이다.
공간과 시간은 거의 항상 반비례하는 경향이있다.

시간복잡도: 어떤 알고리즘이 얼마나 걸리느냐(CPU사용량)
공간복잡도: 어떤 알고리즘이 메모리를 얼마나 쓰느냐(RAM사용량)



1.시간의 복잡도에 나타나는 수들 (맨날 까먹으니 웬만하면 외우자)


as_1-loudon23.gif



1(constant): 입력자료의 수에 관계 없이 일정한 실행 시간을 갖는 알고리즘


log N: 만약 입력 자료의 수에 따라 실행 시간이 이 log N 의 관계를 만족한다면 N이 증가함에 따라 실행시간이 조금씩 늘어난다. 이 유형은 주로 커다란 문제를 일정한 크기를 갖는 작은 문제로 쪼갤때 나타나는 유형이다.

N(Lonear): 입력 자료의 수에 따라 선형적으로 실행 시간이 걸리는 경우이다. 이는 입력 자료 각각에 일정 정도의 동일한 처리를 할때 나타나는 경우이다.

N logN : 이 유형은 커다란 문제를 독립적인 작은 문제로 쪼개어 각각에 대해 독립적으로 해결하고,나중에 다시 그것들을 하나로 모으는 경우에 나타난다. N이 두배로 늘어나면 실행 시간은 2배보다 약간 더 많이 늘어난다.

N²(quadratic): 이 유형은 이중루프내에서 입력 자료를 처리 하는 경우에 나타난다. N값이 큰값이 되면 실행 시간은 감당하지 못할 정도로 커지게 된다.

N³(Cubic): 이 유형은 앞의 유형과 비슷하게 입력 자료를 삼중 루프내에서 처리하는 경우에 나타난다.

2ⁿ : 입력자료의 수가 늘어남에 따라 급격히 실행 시간이 늘어난다. 이 유형은 흔하지는 않지만 가끔씩 알고리즘을 처음 개발할 떄 보인다.

 



2. 시간의 복잡도란?
 
알고리즘을 구성하는 명령어들이 몇번이나 실행됬는지 센 결과(frequency count)
                      +
각 명령어의 실행시간(execution time) 을 곱한 합계를 의미함!!!
 
그러나 각 명령어의 실행시간은 특정 하드웨어 혹은 프로그래밍 언어에 따라서 그 값이 달라질 수 있기 때문에 알고리즘의 일반적인 시간 복잡도는 명령어의 실제 실행시간을 제외한 명령어의 실행 횟수만을 고려하게 된다.


시간의 복잡도는 크게 세가지로 나눌 수 있다.
최상의 경우, 최악의 경우, 평균 => 이래서 표기법도 3개가 존재하는것이다.

시간과 공간은 반비례 하는 경향이 있다.
요즘은 공간보다는 시간이 우선이다!



3.시간 복잡도 표현법
 
Big O Noration(빅-오 표기법) --- O(N)
가장 많이 쓰이는 표기법으로 알고리즘 실행시간의 상한을 나타낸 표기법(최악의 경우)

Ω(오메가)표기법 --  Ω(N)
오메가 표기법은 알고리즘 실행시간의 하한을 나타낸 표기법 (최상의 경우)

Θ(세타)표기법 --- Θ(N)
세타 표기법은 알고리즘 실행시간의 평균시간을 나타낸 표기법(평균의 경우)



4.시간의 복잡도 계산법
 

명령이 끝날때마다 실행 횟수를 적어봅니다.

ex)

void  Func(int *a, n)

{

     int i=0, j=0;                                       1

     for (i = 0 ; i < n-1 ; i++)                      n      (i =0일때부터 i=n-1일때까지 계속 실행되죠)

         for(j=i+1; j<n ; j++)                        (n-1) * n (가장 많이 수행되는 경우를 생각합니다.)

            if (a[i] == a[j]) a[j] = 0 ;            (n-1) * (n-1)

}
 

명령어 실행횟수를 모두 더하면 2n²-2n+2  ->상수는 생략하고 최고차항만 생각한다. => O(n²)로 표기합니다.

 

ex)

int Func2(int a[], int size, int key)  {

   int i = 0;                                          1

   for (i = 0; i < size; i++)                      size + 1

       if(a[i] == key)                              size

       return i;                                      1

   return -1;                                        1

}

시간복잡도 O(size)
총 실행횟수 : 2size +4  => O(N) 

 

출처 : http://skmagic.tistory.com/entry/%EC%8B%9C%EA%B0%84%EC%9D%98-%EB%B3%B5%EC%9E%A1%EB%8F%84-%EC%B4%9D%EC%A0%95%EB%A6%AC%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98

?

공부 게시판

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

  1. No Image notice by 처누 2003/08/18 by 처누
    Views 2007580 

    [공지] 공부 게시판 입니다.

  2. 카­톡 gusim8003 급전/내구제 (24시문의) 폰테크 소액대출 선불폰 가개통

  3. No Image 04Oct
    by 속삭이는와이번53
    2026/10/04 by 속삭이는와이번53
    in 취업
    Views 5 

    을지로가라오케 010 2817 0845 을지로 가라오케 예약 및 문의

  4. 카_톡 gusim8003 선불유심내구제 (24시문의) 작업대출 선불유심 급한돈 가전내구제

  5. No Image 03Oct
    by 괴랄한재규어89
    2026/10/03 by 괴랄한재규어89
    in 업무
    Views 9 

    강남안마❤️OlO-7593-9850❤️친절문의24시 #강남안마 #강남안마방 #강남클럽안마 #강남클럽식안마 #역삼동안마 #선릉안마 #삼성동안마 #대치동안마 #강남역안마 #논현동안마

  6. 텔ㄹH:@holysim 선불유심내구제 신용불량자대출 신불 회생 파산 소액대출 비대면대출 폰내구제 폰깡 텔레그램:@holysim 가개통 선불유심내구제 정식내구제업체 선불폰삽니다 비상금대출

  7. EMR을 기반으로 DW를 구축한 병원의 CRM 활용 방안 연구 = The Study on a Plan to Activate Customer Relationship Management through Data Warehouse based on Electronic Medical Record of Hospitals

  8. 로그인 구글 드라이브 안 쓰고 시놀로지 드라이브 쓰는 이유, 설정 방법 & 활용팁

  9. 알아두면 좋은 직장인 용어 정리

  10. 국내에서 의사가 되는 로드맵

  11. 병원 의학 용어 정리 - 병원 과별 축약어 (ent, os, ps, gs, np, obgy, cv, NE, ID, er, ur, em, ge, pd, nicu..)

  12. 모달리티(Modality)

  13. [ 개발자 업무 파악 ] SI와 SM의 차이와 하루일과 출처: https://bnitech.tistory.com/19 [코딩몬의 하루:티스토리]

  14. 의과 대학에서 받는 학위의 종류와 과정에 대한 이야기

  15. ARO(Academic Research Organization), CRO(Contract Research Organization) 차이

  16. 계약직 직원 지칭하는 명칭 : 임기제(계약직), 개방형직위, 별정직, 전문직위제, 기간제 등

  17. (자격증) AWS아키 따는 법 -2023

  18. 기술사 학습 루틴

  19. 정보처리기술사 독학 vs 학원

  20. IT 기술사회 정보관리기술사 컴퓨터시스템응용기술사 공개설명회

  21. 정보관리냐? 컴퓨터시스템응용이냐? 선택의 기로에 있다면

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


숭실대 인공지능학과


숭실대 통신연구실


베너