파이썬 알고리즘 책 보고 있는데
L = [randrange(10000) for i in range(1000)]
S = set(L)
If you're going to do many membership checks, it might pay off, because membership checks are linear for lists and constant for sets.
여기서 set은 왜 constant하다는거냐?? constant하단게 O(1) 말하는거아님?
set으로 중복은 없앨지언정 남은 숫자들은 다 돌아야하니가 linear한거 아니냐;;??
해쉬
뭔소리임 좀만 자세히좀
어떤 자료 구조에 특정 원소가 포함되어 있는지 여부를 자주 확인할 예정이라면, 앞서 설명한 것이 도움이 될 것입니다. 왜냐하면 포함 여부를 확인하는 데 드는 시간이 리스트의 경우 선형으로 증가하고, 집합의 경우 항상 일정하기 때문입니다
제 영어실력의 문제였군요
근데 왜 data structure가 아니라 membership인거냐
"membership check"라는 말 자체가 "어떤 자료 구조에 특정 원소가 들어있는지 여부를 확인"하는 것을 뜻함. 적절한 번역어가 생각이 안 나서 길게 번역함
"포함 여부 확인" 정도가 될 텐데 첫 문장부터 다짜고짜 그렇게 번역하면 이해가 안 될 테니
후 님 고수 느낌 나니까 제가 1분내로 질문하나 올릴테니 답장주셈 ㅡㅡ