[Data Structure] Set(세트)

황인용·2020년 1월 20일
0

Set(세트)

Set(세트)는 우리가 흔히 수학에서 배웠던 집합의 개념과 같다. 즉, 중복되지 않는 항목들이 모인 것을 Set(세트)라한다.
Set는 순서가 없다. 만약, 순서가 필요없고 고유값을 원한다면 Set가 최선의 자료구조이다.

Set의 특징

  • 데이터를 비순차적(unordered)으로 저장할 수 있는 자료구조
  • 삽입(Insertion) 순서대로 저장되지 않는다.
  • 수정이 가능하다
  • 동일한 값을 여러번 삽입이 불가능하다. 동일한 값이 여러번 삽입되면 나중에 들어온 값으로 치환된다.
  • Fast Lookup 이 필요할 때 사용된다.
  • 고유값을 찾고자 할 때 사용된다.
  • set는 array에 저장된다(Bucket)

Set의 구조

image.png

  • Array와 달리 Set는 element들을 순차적으로 저장하지 않는다.
  • Set에서 element들이 저장될 때는 다음과 같이 저장된다
    1. 저장할 element의 값의 hash 값을 구한다.
    1. hash값에 해당하는 공간(bucket)에 값을 저장한다.
  • set은 저장하고자 하는 값의 hash값에 해당하는 bucket에 값을 저장하기 때문에 순서가 없다.(no indexing)
  • hash값 기반의 bucket에 저장하기 때문에 중복된 값을 저장할 수 없다
  • hash값을 기반으로 저장하기 때문에 Lookup이 빠르다.
    - Look up : 특정 값을 포함하고 있는지를 확인 하는 것 ex) if 5 in my_set:
    • set의 총 길이와 상관없이 단순히 hash값을 계산한 후 해당 bucket을 확인한다 ex) 0(1)

When To Use Set

  • 중복된 값을 골라내야 할 때 (고유값을 얻고자 할 때)
  • 빠른 Look Up을 해야 할 때
  • 순서는 상관 없을 때
profile
dev_pang의 pang.log

0개의 댓글