์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์ž๋ฃŒ๊ตฌ์กฐ

[C# ์ž๋ฃŒ๊ตฌ์กฐ] ์„ ํ˜• ์ž๋ฃŒ ๊ตฌ์กฐ ( ๋ฐฐ์—ด vs ๋™์  ๋ฐฐ์—ด vs ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ)

Rainbow๐ŸŒˆCoder 2022. 2. 3. 18:40
728x90
        public int[] _data = new int[25]; //๋ฐฐ์—ด
        public List<int> _data1 = new List<int>(); //๋™์  ๋ฐฐ์—ด
        public LinkedList<int> _data3 = new LinkedList<int>(); //(์ด์ค‘)์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ

**์ฃผ์˜ C++๊ณผ ํ˜ผ๋ˆ๋  ์ˆ˜ ์žˆ๋Š”๋ฐ 

C#์—์„œ์˜ List<int>๋Š” C++์—์„œ์˜ Vector<int>,

C#์—์„œ์˜ LinkedList<int>๋Š” C++์—์„œ์˜ List<int>

๊ฐ๊ฐ ๋Œ€์‘ํ•ด์„œ ๋น„์Šทํ•˜๊ฒŒ ์งœ์—ฌ์ง„ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค.

 

 

์„ ํ˜• ๊ตฌ์กฐ๋Š” ์ž๋ฃŒ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ๋‚˜์—ดํ•œ ํ˜•ํƒœ

- ๋ฐฐ์—ด

- ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ

- ์Šคํƒ / ํ

 

๋น„์„ ํ˜• ๊ตฌ์กฐ๋Š” ํ•˜๋‚˜์˜ ์ž๋ฃŒ ๋’ค์— ๋‹ค์ˆ˜์˜ ์ž๋ฃŒ๊ฐ€ ์˜ฌ ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ

- ํŠธ๋ฆฌ

- ๊ทธ๋ž˜ํ”„


1. ๋ฐฐ์—ด

(1) ์žฅ์  : ์—ฐ์†์„ฑ(์ž„์˜ ์ ‘๊ทผ Random Access ๊ฐ€๋Šฅ)

(2) ๋‹จ์  : ์‚ฌ์ด์ฆˆ ์ถ”๊ฐ€ / ์ถ•์†Œ ๋ถˆ๊ฐ€ (๊ณ ์ •)

 

2. ๋™์  ๋ฐฐ์—ด

(1) ์žฅ์  : ์—ฐ์†์„ฑ(์ž„์˜ ์ ‘๊ทผ Random Access ๊ฐ€๋Šฅ) / ์œ ๋™์ ์ธ ์‚ฌ์ด์ฆˆ

(2) ๋‹จ์  : ๋น„์šฉ (์ค‘๊ฐ„ ์‚ฝ์ž…, ์‚ญ์ œ) ํ•œ์นธ์”ฉ ๋•ก๊ฒจ์ฃผ๋Š” ํ™œ๋™ ํ•„์š”

(3) ํ•ต์‹ฌ idea : 

 -1- ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•  ๋ถ„๋Ÿ‰๋ณด๋‹ค ๋งŽ์ด, ์—ฌ์œ ๋ถ„์„ ๋‘๊ธฐ

 -2- -1-์„ ํ†ตํ•œ ์ด์‚ฌ ํšŸ์ˆ˜(๋น„์šฉ) ์ตœ์†Œํ™”

 

3. ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ

(1) ์—ฐ์†๋˜์ง€ ์•Š์€ ๊ณต๊ฐ„์„ ์‚ฌ์šฉ

(์ž๊ธฐ ๋…ธ๋“œ์˜ ์•ž ๋…ธ๋“œ, ๋’ค ๋…ธ๋“œ๋งŒ ์•Œ ์ˆ˜ ์žˆ์Œ.)

(2) ์žฅ์  : ์ค‘๊ฐ„ ์ถ”๊ฐ€/ ์‚ญ์ œ ์ด์  : ์—ฐ๊ฒฐ์ ๋งŒ ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋จ

(3) ๋‹จ์  : N๋ฒˆ์งธ ๊ณต๊ฐ„์„ ๋ฐ”๋กœ ์ฐพ์„ ์ˆ˜๊ฐ€ ์—†์Œ(์ž„์˜ ์ ‘๊ทผ Random Access ๋ถˆ๊ฐ€)

728x90