[πŸ’»Python] pearl's python 병아리 νƒˆμΆœκΈ° 🐣

[자료ꡬ쑰]ch2 - lesson 1. λ°°μ—΄μ˜ μ—°μ‚°, λ°°μ—΄μ˜ 이해

seapearl 2025. 3. 6. 15:27
λ°°μ—΄

 

배열은 주둜 값을 λ‹΄κ³  값을 λ°°μ—΄μ—μ„œ μ‚­μ œν•˜κ³  μ›ν•˜λŠ” 값을 λ°°μ—΄μ—μ„œ μ°ΎλŠ”λ‹€. 

μ‚½μž…, μ‚­μ œ, 탐색 μ—°μ‚°

<μ‚½μž…μ—°μ‚°μ˜ μ‹œκ°„λ³΅μž‘λ„>

μ‹œκ°„ λ³΅μž‘λ„λŠ” μ΅œμ•…μ˜ μƒν™©μ—μ„œμ˜ μ‹œκ°„λ³΅μž‘λ„λ₯Ό μ΄μ•ΌκΈ°ν•œλ‹€. 
배열이 μ£Όμ–΄μ‘Œμ„λ•Œ, μ•žμ΄λ‚˜ κ°€μš΄λ°μ— 값을 λ„£λŠ”λ‹€
-> μƒˆλ‘œμš΄ 값이 λ“€μ–΄κ°ˆ 자리λ₯Ό ν™•λ³΄ν•˜κΈ° μœ„ν•΄ λ‹€λ₯Έ 값듀이 ν•œμΉΈμ”© 이동해야 ν•œλ‹€. 
μ‚½μž…μ˜ μ‹œκ°„ λ³΅μž‘λ„λŠ” O(N)
이닀. 
μ‚½μž…ν•˜λ €λŠ” μž₯μ†Œ  3 1 2
N번의 이동이 ν•„μš” 

배열이 μ£Όμ–΄μ‘Œμ„λ•Œ, 뒀에 μ‚½μž…ν•œλ‹€. 
-> λ‹€λ₯Έ κ°’λ“€μ˜ 이동이 μ „ν˜€ μ‘΄μž¬ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ O(1)의 μ‹œκ°„λ³΅μž‘λ„λ₯Ό κ°€μ§„λ‹€. 
3 1 2 μ‚½μž…ν•˜λ €λŠ” μž₯μ†Œ 
<νƒμƒ‰μ—°μ‚°μ˜ μ‹œκ°„λ³΅μž‘λ„>

κ°€μž₯ κ°„λ‹¨ν•œ 방법은 μ²˜μŒλΆ€ν„° λͺ¨λ“  값을 ν›‘λŠ” 것이닀. 
맨 끝에 값이 μ‘΄μž¬ν•œλ‹€λ©΄ λͺ¨λ“  값을 탐색해야 ν•˜λ―€λ‘œ -> μ‹œκ°„ λ³΅μž‘λ„λŠ” O(N)이닀. 
<K번째 μ›μ†Œ κ°’ κ΅¬ν•˜κΈ°>


배열은 index 기반으둜 μ΄λ£¨μ–΄μ‘ŒκΈ° λ•Œλ¬Έμ— k-1 번째 indexλ₯Ό μ°Έμ‘°ν•˜λ©΄ λ°”λ‘œ k번째 μ›μ†Œλ₯Ό ꡬ할 μˆ˜μžˆλ‹€. 
-> μ‹œκ°„ λ³΅μž‘λ„λŠ” O(1)이 λœλ‹€.