์ž๋ฃŒ๊ตฌ์กฐ

[์ž๋ฃŒ๊ตฌ์กฐ] ์ด์ง„ํƒ์ƒ‰ํŠธ๋ฆฌ(Binary Search Tree)

quedevel 2023. 3. 27. 15:44
728x90
๋ฐ˜์‘ํ˜•

๐ŸŽฏ Binary Search Tree


Binary Search Tree(BST, ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ)๋Š” ์ด์ง„ ํŠธ๋ฆฌ์˜ ์ผ์ข…์œผ๋กœ, ๋ชจ๋“  ๋…ธ๋“œ์˜ ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์—๋Š” ํ•ด๋‹น ๋…ธ๋“œ๋ณด๋‹ค ์ž‘์€ ๊ฐ’์„ ๊ฐ€์ง„ ๋…ธ๋“œ๋“ค์ด, ๋ชจ๋“  ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์—๋Š” ํ•ด๋‹น ๋…ธ๋“œ๋ณด๋‹ค ํฐ ๊ฐ’์„ ๊ฐ€์ง„ ๋…ธ๋“œ๋“ค์ด ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์ด์ง„ ํŠธ๋ฆฌ์ž…๋‹ˆ๋‹ค.


Binary Search Tree์˜ ํŠน์ง•


  1. ์ด์ง„ ํŠธ๋ฆฌ์˜ ๊ตฌ์กฐ๋ฅผ ๋”ฐ๋ฅด๊ณ  ์žˆ์œผ๋ฏ€๋กœ, ๋ชจ๋“  ๋…ธ๋“œ์˜ ์ž์‹ ๋…ธ๋“œ์˜ ์ˆ˜๊ฐ€ ์ตœ๋Œ€ 2๊ฐœ์ž…๋‹ˆ๋‹ค.
  2. ๋ชจ๋“  ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์˜ ๋…ธ๋“œ๋“ค์€ ํ•ด๋‹น ๋…ธ๋“œ๋ณด๋‹ค ์ž‘์€ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ๋ชจ๋“  ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์˜ ๋…ธ๋“œ๋“ค์€ ํ•ด๋‹น ๋…ธ๋“œ๋ณด๋‹ค ํฐ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ์ค‘๋ณต๋œ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๋…ธ๋“œ๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Binary Search Tree์˜ ์ฃผ์š” ์—ฐ์‚ฐ


  1. ํƒ์ƒ‰(Search)
    • BST์—์„œ ํŠน์ • ๊ฐ’์„ ๊ฐ€์ง„ ๋…ธ๋“œ๋ฅผ ์ฐพ๋Š” ์—ฐ์‚ฐ์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ฐ’์ด BST์— ์—†๋Š” ๊ฒฝ์šฐ NULL์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ์—ฐ์‚ฐ์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(log n)์ž…๋‹ˆ๋‹ค.
  2. ์‚ฝ์ž…(Insertion)
    • BST์— ์ƒˆ๋กœ์šด ๋…ธ๋“œ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ์—ฐ์‚ฐ์ž…๋‹ˆ๋‹ค. ์ด ์—ฐ์‚ฐ์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” ํƒ์ƒ‰๊ณผ ๊ฐ™์€ O(log n)์ž…๋‹ˆ๋‹ค.
  3. ์‚ญ์ œ(Deletion)
    • BST์—์„œ ํŠน์ • ๊ฐ’์„ ๊ฐ€์ง„ ๋…ธ๋“œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ์—ฐ์‚ฐ์ž…๋‹ˆ๋‹ค. ์‚ญ์ œํ•  ๋…ธ๋“œ์˜ ์ž์‹ ๋…ธ๋“œ์— ๋”ฐ๋ผ ์—ฐ์‚ฐ ๋ฐฉ๋ฒ•์ด ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ์ด ์—ฐ์‚ฐ์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(log n)์ž…๋‹ˆ๋‹ค.

Binary Search Tree ์žฅ๋‹จ์ 


โญ๏ธ Binary Search Tree ์žฅ์ 

  1. ๊ฒ€์ƒ‰ ์‹œ๊ฐ„์ด ๋น ๋ฅด๋‹ค
    • ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ์˜ ํŠน์„ฑ์ƒ ํƒ์ƒ‰ ์‹œ๊ฐ„์ด O(log n)์œผ๋กœ ๋งค์šฐ ๋น ๋ฆ…๋‹ˆ๋‹ค.
  2. ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๊ฐ€ ์šฉ์ดํ•˜๋‹ค
    • BST๋Š” ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๊ฐ€ ๋‹ค๋ฅธ ์ž๋ฃŒ๊ตฌ์กฐ์— ๋น„ํ•ด ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค.
  3. ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค
    • ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ฐ์ดํ„ฐ์˜ ์œ ์ผ์„ฑ์ด ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ’€๏ธ Binary Search Tree ๋‹จ์ 

  1. ํŠธ๋ฆฌ์˜ ๋ถˆ๊ท ํ˜•
    • ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๊ฐ€ ๋นˆ๋ฒˆํ•˜๊ฒŒ ์ผ์–ด๋‚˜๋Š” ๊ฒฝ์šฐ, ํŠธ๋ฆฌ์˜ ๊ท ํ˜•์ด ๊นจ์ ธ ๊ฒ€์ƒ‰ ์‹œ๊ฐ„์ด O(n)์œผ๋กœ ์ฆ๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ์ตœ์•…์˜ ๊ฒฝ์šฐ ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ O(n)์ด ๋  ์ˆ˜ ์žˆ๋‹ค
    • BST๊ฐ€ ๊ท ํ˜•์„ ์œ ์ง€ํ•˜์ง€ ๋ชปํ•  ๊ฒฝ์šฐ, ์ตœ์•…์˜ ๊ฒฝ์šฐ ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ O(n)์œผ๋กœ ์ฆ๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•

'์ž๋ฃŒ๊ตฌ์กฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[์ž๋ฃŒ๊ตฌ์กฐ] B-Tree & B+Tree  (0) 2023.03.27
[์ž๋ฃŒ๊ตฌ์กฐ] Hash  (0) 2023.03.27
[์ž๋ฃŒ๊ตฌ์กฐ] Heap  (0) 2023.03.27
[์ž๋ฃŒ๊ตฌ์กฐ] LinkedList  (0) 2023.03.26
[์ž๋ฃŒ๊ตฌ์กฐ] Trie  (0) 2023.03.26