ASH84

Software Engineer/Developer, co-founder of Payhere. Ex-Banksalad. Intereseted in iteroperability, bootstrap company, writting.

(espressoOtr) Canister/Shelfer μ†Œκ°œ

created:2013-03-09
updated:2013-03-09
edit


Canister shelfer from SeonyHyun Ahn
espressoOtr μ—λŠ” Canister/Shelfer λΌλŠ” 데이터 ꡬ쑰(클래슀)κ°€ μžˆλ‹€. μœ„μ˜ μ„€λͺ…은 μ˜μ–΄λ‘œ μ¨μ„œ 잘 이해가 μ•ˆλ μˆ˜λ„ μžˆλŠ”λ° κ°„λ‹¨ν•˜κ²Œ λ§ν•˜μžλ©΄ λ¬Έμžμ—΄(String)을 μœ„ν•œ ꡬ쑰이닀. 그런데 λ¬Έμžμ—΄μ„ 제일 μ•žκΈ€μžλ₯Ό κΈ°μ€€μœΌλ‘œ n 개의 Canister λΌλŠ” 클래슀둜 λ‚˜λˆ„μ–΄μ„œ μ €μž₯을 ν•˜λŠ”κ²ƒμ΄λ‹€.Β 

μ΄λ ‡κ²Œ λ‚˜λˆ„μ–΄μ„œ μ €μž₯을 ν•˜λŠ” κ°€μž₯ 큰 λͺ©μ μ€ λ°”λ‘œ νƒμƒ‰μ‹œ 적은 수의 데이터λ₯Ό λŒ€μƒμœΌλ‘œ 탐색을 ν•˜κ³ μž ν•˜λŠ” λͺ©μ μ΄λ‹€. 사싀 이 ꡬ쑰의 κ³ μ•ˆ μžμ²΄λŠ” μžλ™μ™„μ„±μ„ μœ„ν•΄μ„œ κ³ μ•ˆμ„ ν–ˆμ—ˆλŠ”λ°, μžλ™μ™„μ„±μ˜ 경우 μ•ž 단어뢀터 비ꡐλ₯Ό ν•΄μ•Όν•˜λŠ” 것이 기본이닀. (λ¬Όλ‘  κ°„ν˜Ή κ·ΈλŸ¬μ§€ μ•Šμ€ κ²½μš°λ„ μžˆλ‹€.) λ•Œλ¬Έμ— 데이터 μ €μž₯μ‹œμ— μ•ž κΈ€μžλ₯Ό 기반으둜 λ¬Έμžμ—΄ 데이터λ₯Ό λ‚˜λˆ μ„œ μ €μž₯을 ν•˜κ³ , μ €μž₯을 ν• λ•Œ λ§ˆλ‹€ λ‚΄λΆ€μ μœΌλ‘œ 정렬을 ν•œλ‹€.Β *Β νƒμƒ‰μ‹œμ—λŠ” μš°μ„ μ μœΌλ‘œ μ•ž κΈ€μžλ₯Ό 이진 탐색을 ν†΅ν•΄μ„œ 찾은 ν›„, Canister μ•ˆμ— μžˆλŠ” 데이터에 λŒ€ν•΄μ„œ λ‹€μ‹œ 이진탐색을 ν•΄μ„œ μ°ΎλŠ” 것이닀.Β *

μž₯점은 μœ„μ˜ μŠ¬λΌμ΄λ“œμ—μ„œλ„ λͺ…μ‹œ ν–ˆμ§€λ§Œ, μžλ°”μ˜ List μ»¬λ ‰μ…˜κ³Ό λΉ„μŠ·ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆμ—ˆμœΌλ©΄ ν•΄μ„œ add(), size(), remove() λ“±μ˜ μ΅μˆ™ν•œ ν•¨μˆ˜λ“€μ„ μž‘μ„±μ„ ν–ˆκ³ , 데이터가 λ§Žμ€ 경우 λ™μΌν•œ μ‚¬μ΄μ¦ˆμ— λŒ€ν•œ 데이터 탐색 μ‹œκ°„μ€ λ‹Ήμ—°νžˆ 적닀. *λ¬Όλ‘  μ‚¬μ΄λ“œ μ΄νŽ™νŠΈλ„ μžˆλ‹€. 제일 μ•žκΈ€μžκ°€ 같은 문자둜 μ‹œμž‘ν•˜λŠ” 단어가 μ—„μ²­ λ§Žμ€ 경우, Β Shelfer λ‚΄ 단일 Canister 에 데이터가 많이 λŠ˜μ–΄λ‚˜μ„œ 탐색 μ‹œκ°„μ˜ κ°œμ„  νš¨κ³Όκ°€ 크지 μ•Šμ„ μˆ˜λ„ μžˆλ‹€.Β *

아직 λ§Œλ“  λ‚˜λ„ κ·Έλ ‡κ²Œ 많이 μ‚¬μš©ν•΄ 보진 μ•Šμ•˜μ§€λ§Œ, ν˜„μž¬ κ°œλ°œν•˜κ³  μžˆλŠ” 검색 컨텐츠 μ„œλ²„μ— index 둜 ν™œμš©ν•˜κΈ° μœ„ν•΄μ„œ μ μš©μ€‘μ΄λ‹€. μ μš©ν•˜κ³  κ°œλ°œν•˜κ³  ν…ŒμŠ€νŠΈ ν•˜λ©΄μ„œ μ•„λ§ˆ 쒀더 ν•„μš”ν•œ ν•¨μˆ˜κ°€ μΆ”κ°€λ˜κ±°λ‚˜ μ„±λŠ₯이 κ°œμ„ λ  것 κ°™λ‹€.Β 


#Canister  #espressoOtr  #exs4j  #Java  #qsort  #Shelfer  #λ¬Έμžμ—΄ 탐색  #이진탐색