ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [์ž๋ฐ”(JAVA)] ๋ฐฐ์—ด๊ณผ LinkedList์˜ ์žฅ๋‹จ์ ,์ด์ค‘ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ, ArrayList vs LinkedList ์„ฑ๋Šฅ ๋น„๊ต
    ์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ 2023. 7. 20. 12:53
    728x90

    ๐Ÿ”ท๋ฐฐ์—ด์˜ ์žฅ๋‹จ์ 

    ๐Ÿ‘‰์žฅ์ : ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„(์ ‘๊ทผ์‹œ๊ฐ„, access time)์ด ์งง๋‹ค.

    - n๋ฒˆ์งธ์˜ ์ฃผ์†Œ๋ฅผ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

     

     

    ๐Ÿ‘‰ ๋‹จ์ 1: ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค.

    - ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ โ‘  ๋” ํฐ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•œ ํ›„ โ‘ก ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์‚ฌํ•ด์•ผํ•œ๋‹ค.

    - ํฌ๊ธฐ ๋ณ€๊ฒฝ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์ถฉ๋ถ„ํžˆ ํฐ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋‚ญ๋น„๋œ๋‹ค.

     

    ๐Ÿ‘‰ ๋‹จ์ 2: ๋น„์ˆœ์ฐจ์ ์ธ ๋ฐ์ดํ„ฐ์˜ ์ถ”๊ฐ€, ์‚ญ์ œ์— ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ฆฐ๋‹ค.

    - ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฅผ ์˜ฎ๊ฒจ์•ผ ํ•จ

    - ๊ทธ๋Ÿฌ๋‚˜ ์ˆœ์ฐจ์ ์ธ ๋ฐ์ด์ฒ˜ ์ถ”๊ฐ€(๋์— ์ถ”๊ฐ€)์™€ ์‚ญ์ œ(๋๋ถ€ํ„ฐ ์‚ญ์ œ)๋Š” ๋น ๋ฅด๋‹ค.

     

    *๋น„์ˆœ์ฐจ์ ์ธ ๋ฐ์ดํ„ฐ: ๋ฐฐ์—ด์˜ ์ค‘๊ฐ„์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ

     


    ๐ŸŒŸ๋ฐฐ์—ด์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•œ๊ฒŒ LinkedList์ด๋‹ค.

     1. ํฌ๊ธฐ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€

     2. ์ถ”๊ฐ€,์‚ญ์ œ์‹œ ์‹œ๊ฐ„์†Œ์š” ํผ

     

    ๐Ÿ”ทLinkedList

    ๋ฐฐ์—ด๊ณผ๋Š” ๋‹ฌ๋ฆฌ ๋ถˆ์—ฐ์†์ ์œผ๋กœ ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ๊ฒฐ(link)ํ•œ๊ฒƒ

     

    - ๋ถˆ์—ฐ์†์ ์ด๋‹ค

    - ๋งˆ์น˜ ๊ธฐ์ฐจ๋ฅผ ์—ฐ๊ฒฐํ•œ๊ฒƒ๊ณผ ๊ฐ™๋‹ค. = ๋ณ€๊ฒฝ์— ์œ ๋ฆฌํ•จ

     

     

     

    <์‚ญ์ œ์‹œ>

     

    ์‚ญ์ œ์‹œ ๋…ธ๋“œ(์ฐธ์กฐ๊ฐ’)๋งŒ ๋ฐ”๊พธ๋ฉด ๋œ๋‹ค.

    ์ˆ˜์ •์‹œ์—๋Š” ๋‘๋ฒˆ์˜ ์ฐธ์กฐ๋ณ€๊ฒฝ๋งŒ ์ง„ํ–‰ํ•˜๋ฉด ๋œ๋‹ค.

     

     

     


    ๐Ÿ”ทLinkedList ์ด์ค‘ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ

     

    LinkedList๋Š” ์ด๋™๋ฐฉํ–ฅ์ด ๋‹จ๋ฐฉํ–ฅ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ ์š”์†Œ์— ๋Œ€ํ•œ ์ ‘๊ทผ์€ ์‰ฝ์ง€๋งŒ ์ด์ „ ์š”์†Œ์— ๋Œ€ํ•œ ์ ‘๊ทผ์€ ์–ด๋ ต๋‹ค.

    ์ด ์ ์„ ๋ณด์•ˆํ•œ๊ฒŒ ์ด์ค‘ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์ด๋‹ค.

     

    ๋ถˆ์—ฐ์†์ ์ด๋ผ ์ ‘๊ทผ์„ฑ์ด ๋‚˜์œ๊ฒƒ์„ ๋ณด์™„ํ•˜๊ธฐ์œ„ํ•ด ๋‚˜์˜จ๊ฒƒ์œผ๋กœ

    ์•ž ๋’ค๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๊ฒŒ ์—ฐ๊ฒฐํ•œ๊ฒƒ์ด๋‹ค.

     

    ์ฒ˜์Œ ์ธ๋ฑ์Šค์™€ ๋งˆ์ง€๋ง‰์ธ๋ฑ์Šค๋ฅผ ์—ฐ๊ฒฐํ•œ doubly circuial linked list๋„ ์žˆ๋‹ค.

     

     

     

     


     

    ๐Ÿ”ทArrayList vs LinkedList ์„ฑ๋Šฅ ๋น„๊ต

    ๋‹จ์œ„๋Š” ms

    1) ์ˆœ์ฐจ์ ์œผ๋กœ ์ถ”๊ฐ€/์‚ญ์ œํ•  ๋•Œ LinkedList๋Š” ๊ฐ ๊ฐ์ฒด๋ฅผ ํ•˜๋‚˜์”ฉ ๋งŒ๋“ค๊ณ  ์ฐพ์•„์•ผํ•ด์„œ ์ด๋•Œ๋Š” ArrayList๊ฐ€ ๋” ๋น ๋ฅด๋‹ค.

    2) ๋น„์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€/์‚ญ์ œ - LinkedList๊ฐ€ ๋” ๋น ๋ฅด๋‹ค.

    3) ์ ‘๊ทผ์‹œ๊ฐ„ ArrayList๊ฐ€ ๋” ๋น ๋ฅด๋‹ค.

    ์ธ๋ฑ์Šค๊ฐ€ n์ธ ๋ฐ์ดํ„ฐ์˜ ์ฃผ์†Œ = ๋ฐฐ์—ด์˜ ์ฃผ์†Œ + n * ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ํฌ๊ธฐ

     

     

     

    <๊ฒฐ๋ก >

     

    ArrayList : ๋ฐฐ์—ด ๊ธฐ๋ฐ˜(์—ฐ์†์ )

    LinkedList: ์—ฐ๊ฒฐ ๊ธฐ๋ฐ˜(๋ถˆ์—ฐ์†์ )

     

     

    ๋‹ค๋ฃจ๊ณ ์ž ํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด ArrayList๋ฅผ ์ถ”์ฒœ
    ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜์˜ ๋ณ€๊ฒฝ์ด ์žฆ๋‹ค๋ฉด LinkedList๋ฅผ ์‚ฌ์šฉํ•˜๊ธธ ์ถ”์ฒœํ•จ

    *์ฒ˜์Œ ์ž‘์—…์ „์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๋•Œ๋Š” ArrayList๋ฅผ ์‚ฌ์šฉํ•œ ๋‹ค์Œ, ์ž‘์—…์‹œ์—๋Š” LinkedList๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์˜ฎ๊ฒจ์„œ ์ž‘์—…ํ•˜๋ฉด ๋” ์ข‹์€ ํšจ์œจ์„ ๋‚ผ ์ˆ˜ ์žˆ๋‹ค. 

     

     

     

     

    ์ด ์™ธ์—๋„ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ปฌ๋ ‰์…˜์ด ์žˆ๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ์ž˜ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด์„œ๋Š” ์–ด๋–ค์‹์œผ๋กœ ์ €์žฅ๋˜๋Š”์ง€, ์–ด๋–ค ๊ตฌ์กฐ๋กœ ์ •ํ•ด์•ผ ํ•˜๋Š”์ง€๋ฅผ ํŒŒ์•…ํ•ด์•ผํ•œ๋‹ค.

     

    728x90
Designed by Tistory.