• 티스토리 홈
  • 프로필사진
    alpha brain
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
alpha brain
  • 프로필사진
    alpha brain
    • 분류 전체보기 (93)
      • SOFTWARE DEVELOP (68)
        • REACT.JS (3)
        • WEBPACK (4)
        • HTML&CSS (2)
        • EXPRESS (0)
        • DATABASE (0)
        • NODE.JS (3)
        • JAVASCRIPT (24)
        • DOCKER (1)
        • Linux (3)
        • Git (6)
        • GRAPHQL (0)
        • Datastructure (7)
        • Development (6)
        • HTTP (1)
        • Programming Paradigm (1)
        • Algorithm log (5)
        • DEV log (1)
        • Project log (0)
        • I don't know yet (1)
      • 경제, 재무 (23)
      • 여행 (0)
      • 시사, 상식 (2)
  • 반응형
    250x250
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • [Datastructure] Time Complxity with Data Structure
        2020년 02월 11일
        • alpha brain
        • 작성자
        • 2020.02.11.:38
        728x90
        반응형

        1. Array

        • Access : O(1) (바로 접근 가능)
        • Search : O(n) (search은 모든 원소를 순회해야 하므로)
        • Insertion : O(n) (넣을 index를만들고 이후에 있는 요소들을 한칸씩 뒤로 민다.(n))
        • Deletion : O(n) (요소 삭제후 이후에 있는 요소들을 앞으로 당긴다.(n))

        2. Linked List

        • Access : O(n) (해당 노드에 접근하기 위해서는 처음부터 순회를 해야하므로)
        • Search : O(n) (해당 노드를 탐색하기 위해서는 처음부터 순회를 해야하므로)
        • Insertion : O(1) (삽입이라는 operation만 보면 연산은 상수번(2번) 일어난다.)
        • Deletion : O(1) (삭제라는 operation만 보면 연산은 상수번(2번) 일어난다.)

        3. Hash Table

        (hash table은 충돌 가능성이 있기 때문에 average case와 worst case가 다르다.)

        • Access : x (순서가 없으므로 접근안됨)

           3.1 average case(충돌 없을때)

        • Search : O(1) 해싱값으로 한번에 찾는다.
        • Insertion : O(1) 해싱값으로 한번에 삽입한다.
        • Deletion : O(1) 해싱값으로 한번에 삭제한다.

           3.2 worst case(충돌가능성때문에 array value를 linked list로 구현하였다면)

        • Search : O(n) 해싱값으로 value를 찾으면 그곳이 linked list이므로 2번과 동일하다.
        • Insertion : O(n) 해싱값으로 value를 찾으면 그곳이 linked list이므로 2번과 동일하다.
        • Deletion : O(n) 해싱값으로 value를 찾으면 그곳이 linked list이므로 2번과 동일하다.

        4. Tree

        (일반 트리에서의 opertaion은 모든 노드를 순회해야 하므로)

        • Access : O(n) 
        • Search : O(n)
        • Insertion : O(n)
        • Deletion : O(n)

        5. Binary Search Tree

        (bst도 balanced(average case) 와 unbalanced(worst case)가 있다.)

           5.1 balanced(average case) : 자식노드가 2개로 채워져 있는경우

            bst는 값을 찾아나갈때 데이터의수가 n/2 , n/4 , n/8 , ...  이 되고 최종 1개가 남을때 까지 k번 진행되므로

            n * 1/2^k = 1(최종1개) 이고 , 

            n = 2^k이므로, 

            k(횟수)를 구하기 위해서 밑이 2인 log를 씌워주면,

            k = log n ( 밑은 2임 ) 가 된다.

            big o 표기법에서는 밑의 의미가 미미하기때문에 표시는 O(log n )으로 한다.

        • Access : O(log n)
        • Search : O(log n)
        • Insertion : O(log n)
        • Deletion : O(log n)

           5.2 unbalanced(worst case) 

            이 경우는 단지 linked list와 다를것이 없다.

        • Access : O(n)
        • Search : O(n)
        • Insertion : O(n)
        • Deletion : O(n)
        728x90
        반응형

        'SOFTWARE DEVELOP > Datastructure' 카테고리의 다른 글

        [Datastructrue] Time Complexity  (0) 2020.02.11
        [Datastructure] Tree / Binary Tree  (0) 2020.02.10
        [Datastructure] Graph  (0) 2020.02.10
        [Datastructure]Hash Table  (0) 2020.02.07
        [Datastructure]Linked List  (0) 2020.02.07
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바