ๆ ๆฏไธ็งๅๅฑ็ๆฐๆฎ็ปๆ๏ผ็ฑ่็นๅ่พน็ปๆ๏ผๅ ทๆไธไธชๆ น่็นๅ่ฅๅนฒๅญๆ ใๆ ๆฏ้็บฟๆงๆฐๆฎ็ปๆ๏ผไธๅพ็ๅบๅซๅจไบๆ ๆฒกๆ็ฏ่ทฏไธ่ฟ้ใๆ ็ปๆๅจ่ฎก็ฎๆบ็งๅญฆไธญๆ ๅคไธๅจ๏ผๅนฟๆณๅบ็จไบๆไปถ็ณป็ปใๆฐๆฎๅบ็ดขๅผใ็ผ่ฏๅจ็ญ้ขๅใ
ๆ ็็ปๆ็คบๆ๏ผ
ๆ ็ๅฑๆฌก็ปๆ:
โโโโโโโ
โ 1 โ โ ๆ น่็น (Root) - ็ฌฌ0ๅฑ
โโโโฌโโโ
โ
โโโโโโโโโโโโโโผโโโโโโโโโโโโโ
โ โ โ
โโโโดโโโ โโโโดโโโ โโโโดโโโ
โ 2 โ โ 3 โ โ 4 โ โ ็ฌฌ1ๅฑ
โโโโฌโโโ โโโโโโโ โโโโฌโโโ
โ โ
โโโโโดโโโโ โโโโโดโโโโ
โ โ โ โ
โโโโดโโโ โโโโดโโโ โโโโดโโโ โโโโดโโโ
โ 5 โ โ 6 โ โ 7 โ โ 8 โ โ ็ฌฌ2ๅฑ
โโโโโโโ โโโโโโโ โโโโโโโ โโโโฌโโโ
โ
โโโโดโโโ
โ 9 โ โ ็ฌฌ3ๅฑ
โโโโโโโ
ๆ ็ๅบๆฌๆฏ่ฏญ:
โข ่็น: ๆ ไธญ็ๆฏไธชๅ
็ด (1-9)
โข ่พน: ่ฟๆฅ่็น็็บฟ
โข ๆ น: ๆ ็้กถ้จ่็น (1)
โข ๅถๅญ: ๆฒกๆๅญ่็น็่็น (3, 5, 6, 7, 9)
โข ็ถ่็น: ๆๅญ่็น็่็น (1ๆฏ2/3/4็็ถ่็น)
โข ๅญ่็น: ็ถ่็น็ไธไธๅฑ่็น (2/3/4ๆฏ1็ๅญ่็น)
โข ๅ
ๅผ่็น: ๅไธ็ถ่็น็ๅญ่็น (2,3,4ไบไธบๅ
ๅผ)
โข ่ทฏๅพ: ไปไธไธช่็นๅฐๅฆไธไธช่็น็่พนๅบๅ
โข ๆทฑๅบฆ: ไปๆ นๅฐ่ฏฅ่็น็่พนๆฐ (่็น5ๆทฑๅบฆ=2)
โข ้ซๅบฆ: ไป่ฏฅ่็นๅฐๆๆทฑๅถๅญ็่พนๆฐ (ๆ ้ซๅบฆ=3)
โข ๅบฆ: ่็น็ๅญ่็นๆฐ (่็น1ๅบฆ=3)
ๆ ็ๅ็ฑปไฝ็ณป:
ๆ (Tree)
โโโ ๆๅญ่็นๆฐ็ฎ
โ โโโ ไบๅๆ (Binary Tree)
โ โ โโโ ๆฎ้ไบๅๆ
โ โ โโโ ๆปกไบๅๆ (ๆๆๅฑ้ฝๆปก)
โ โ โโโ ๅฎๅ
จไบๅๆ (ๆๅไธๅฑๅทฆๅฏน้ฝ)
โ โ โโโ ไบๅๆ็ดขๆ BST
โ โ โ โโโ ๅทฆๅญๆ < ๆ น < ๅณๅญๆ
โ โ โโโ ๅนณ่กกไบๅๆ
โ โ โ โโโ AVLๆ (ๅทฆๅณๅญๆ ้ซๅบฆๅทฎโค1)
โ โ โ โโโ ็บข้ปๆ
โ โ โโโ ๅ (Heap)
โ โ โโโ ๅคง้กถๅ (็ถโฅๅญ)
โ โ โโโ ๅฐ้กถๅ (็ถโคๅญ)
โ โ
โ โโโ ๅคๅๆ (N-ary Tree)
โ โโโ Bๆ /B+ๆ (ๆฐๆฎๅบ็ดขๅผ)
โ โโโ Trieๆ (ๅญ็ฌฆไธฒๆฃ็ดข)
โ โโโ ๅนถๆฅ้ (ไธ็ธไบค้ๅ)
โ
โโโ ๆ็จ้
โ โโโ ๆ็ดขๆ (BST, AVL, ็บข้ปๆ )
โ โโโ ไผๅ
้ๅ (ๅ )
โ โโโ ๅบ้ดๆ (็บฟๆฎตๆ )
โ โโโ ๅญๅ
ธๆ (Trie)
โ โโโ ่ฏญๆณๆ (่กจ่พพๅผๆ ใๅณ็ญๆ )
โ
โโโ ็นๆฎๆง่ดจ
โโโ ๅๅคซๆผๆ (ๆไผๅ็ผ็ผ็ )
โโโ ไผธๅฑๆ (่ช่ฐๆด)
โโโ Treap (้ๆบๅๅนณ่กก)
ไบๅๆ ็้พๅผๅญๅจ:
โโโโโโโโโโโ
โ data โ
โ 10 โ
โโโโโโโโโโโค
โ left โโโโ โโโโโโโโโโโ
โ ๆ้ โ โ data โ
โโโโโโโโโโโค โ 5 โ
โ right โโ โโโโโโโโโโโค
โ ๆ้ โ โ โ left โโโโ NULL
โโโโโโโโโโโ โโโโโโโโโโโค
โ right โโโโ NULL
โโโโโโโโโโโ
ๅไบฒ่กจ็คบๆณ (ๆฐ็ปๅญๅจ):
โโโโโโโโโโโฌโโโโโโโโโโฌโโโโโโโโโโ
โ ็ดขๅผ โ data โ parent โ
โโโโโโโโโโโผโโโโโโโโโโผโโโโโโโโโโค
โ 0 โ 1 โ -1 โ (ๆ น่็น)
โ 1 โ 2 โ 0 โ
โ 2 โ 3 โ 0 โ
โ 3 โ 4 โ 0 โ
โ 4 โ 5 โ 1 โ
โ ... โ ... โ ... โ
โโโโโโโโโโโดโโโโโโโโโโดโโโโโโโโโโ
ๅญฉๅญๅ
ๅผ่กจ็คบๆณ (้ๅๅคๅๆ ):
ๆฏไธช่็นๅญๅจ: data + first_child + next_sibling
โโโโโโโ
โ 1 โ first_child โ 2
โโโฌโโโโ
โ next_sibling
โ
โโโโโโโ
โ 2 โ first_child โ 5
โโโฌโโโโ
โ next_sibling
โ
โโโโโโโ
โ 3 โ first_child โ NULL
โโโฌโโโโ
โ next_sibling
โ
โโโโโโโ
โ 4 โ
โโโโโโโ
ไผ็น๏ผ
- ๅๅฑ็ป็ป๏ผ่ช็ถ่กจ็คบๅฑๆฌกๅ ณ็ณป
- ้ซๆๆ็ดข๏ผๅนณ่กกๆ ๆ็ดขO(log n)
- ๅจๆๆง๏ผๆไบๆๅ ฅๅ ้ค่็น
- ๆๅบ่ฝๅ๏ผBSTไธญๅบ้ๅๅณๆๅบๅบๅ
็ผบ็น๏ผ
- ็ฉบ้ดๅผ้๏ผ้่ฆๅญๅจๅญ่็นๆ้
- ๅนณ่กก็ปดๆค๏ผ่ชๅนณ่กกๆ ๅฎ็ฐๅคๆ
- ็ผๅญไธๅๅฅฝ๏ผ่็นๅๆฃๅญๅจ๏ผ้ๆบ่ฎฟ้ฎ
ๆฆ่ฟฐ๏ผ
- ๅทฆๅญๆ ๆๆ่็นๅผ < ๆ น่็นๅผ < ๅณๅญๆ ๆๆ่็นๅผ
- ไธญๅบ้ๅๅพๅฐๆๅบๅบๅ
- ๆ็ดขใๆๅ ฅใๅ ้คๅนณๅO(log n)๏ผๆๅO(n)๏ผ้ๅไธบ้พ่กจ๏ผ
BSTๆไฝ็คบๆ๏ผ
BSTๆ็ดข่ฟ็จ (ๆฅๆพ 40):
โโโโโโโ
โ 50 โ
โโโฌโโโโ
โ
โโโโโโดโโโโโ
โ โ
โโโโโ โโโโโ
โ 30โ โ 70 โ
โโโโฌโ โโโฌโโ
โ โ
โโโโดโโโ โโโโดโโโ
โ โ โ โ
โโโโโ โโโโโ โโโโโ โโโโโ
โ 20โ โ 40โ โ 60โ โ 80โ
โโโโโ โโโโโ โโโโโ โโโโโ
ๆญฅ้ชค:
1. ไปๆ น50ๅผๅง๏ผ40 < 50๏ผ่ฟๅ
ฅๅทฆๅญๆ
2. ๆฏ่พ30๏ผ40 > 30๏ผ่ฟๅ
ฅๅณๅญๆ
3. ๆฏ่พ40๏ผ40 == 40 โ ๆพๅฐ!
ๆถ้ดๅคๆๅบฆ: O(h)๏ผhไธบๆ ้ซๅบฆ
ๅนณ่กกๆถ h=log n๏ผๆๅๆถ h=n
BSTๆๅ
ฅ่ฟ็จ (ๆๅ
ฅ 35):
1. 50 โ ๅทฆๅญๆ (30)
2. 30 โ ๅณๅญๆ (40)
3. 40 โ ๅทฆๅญๆ (NULL)
4. ๅจ40็ๅทฆๅญๆ ไฝ็ฝฎๆๅ
ฅ35
โโโโโโโ
โ 50 โ
โโโฌโโโโ
โ
โโโโโโดโโโโโ
โ โ
โโโโโ โโโโโ
โ 30โ โ 70 โ
โโโโฌโ โโโฌโโ
โ โ
โโโโดโโโ โโโโดโโโ
โ โ โ โ
โโโโโ โโโโโ โโโโโ โโโโโ
โ 20โ โ 40โ โ 60โ โ 80โ
โโโโโ โโโฌโโ โโโโโ โโโโโ
โ
โโโโโ
โ 35โ (ๆฐ่็น)
โโโโโ
ๆ ธๅฟๆๆณ๏ผ
- ๅฉ็จๆๅบๆงๅฟซ้ๅฎไฝ
- ๅทฆๅฐๅณๅคง็้ๅฝ็ปๆ
ๅบ็จ๏ผ
- ๅจๆๆๅบๆฐๆฎ
- ๆฐๆฎๅบ็ดขๅผๅบ็ก
- ๆฅๆพไธญไฝๆฐใ็ฌฌKๅคงๅ ็ด
ๅฎ็ฐ็ฎๅฝ๏ผbinarytree/
ๆฆ่ฟฐ๏ผ
- BST็ๆน่ฟ็๏ผไฟๆไธฅๆ ผๅนณ่กก
- ไปปๆ่็น็ๅทฆๅณๅญๆ ้ซๅบฆๅทฎ โค 1
- ้่ฟๆ่ฝฌๆไฝ็ปดๆคๅนณ่กก
AVLๅนณ่กกๅ ๅญ็คบๆ๏ผ
ๅนณ่กกๅ ๅญ = ๅทฆๅญๆ ้ซๅบฆ - ๅณๅญๆ ้ซๅบฆ
ๅนณ่กกๅ ๅญ โ {-1, 0, 1} โ ๅนณ่กก
ๅนณ่กกๅ ๅญ < -1 ๆ > 1 โ ไธๅนณ่กก๏ผ้่ฆๆ่ฝฌ
ๅนณ่กกๅ ๅญ่ฎก็ฎ:
โโโโโโโ
โ 30 โ โ ๅนณ่กกๅ ๅญ = 0 (ๅทฆๅณ้ซๅบฆ้ฝๆฏ2)
โโโฌโโโโ
โ
โโโโโโดโโโโโ
โ โ
โโโโโ โโโโโ
โ 20โ โ 40โ
โโโโฌโ โโโฌโโ
โ โ
โโโโดโโโ โโโโดโโโ
โ โ โ โ
โโโโโ โโโโโ โโโโโ โโโโโ
โ 10โ โ 25โ โ 35โ โ 50โ
โโโโโ โโโโโ โโโโโ โโโโโ
ไธๅนณ่กกๆ
ๅตๅๆ่ฝฌ:
ๆ
ๅต1: ๅทฆๅทฆไธๅนณ่กก (LL) โ ๅณๆ
30 20
/ / \
20 โ 10 30
/ \
10 40
ๆ
ๅต2: ๅณๅณไธๅนณ่กก (RR) โ ๅทฆๆ
30 40
\ / \
40 โ 30 50
\
50
ๆ
ๅต3: ๅทฆๅณไธๅนณ่กก (LR) โ ๅ
ๅทฆๆๅๅณๆ
30 30 25
/ / / \
20 โ 25 โ 20 30
\ /
25 20
ๆถ้ดๅคๆๅบฆ:
ๆ็ดขใๆๅ
ฅใๅ ้ค้ฝๆฏ O(log n) - ไธฅๆ ผไฟ่ฏ!
ๆ ธๅฟๆๆณ๏ผ
- ไฟๆๅนณ่กกๅ ๅญๅจ่ๅดๅ
- ๅ็งๆ่ฝฌๆไฝๅค็ไธๅนณ่กก
ๅบ็จ๏ผ
- ้่ฆไธฅๆ ผO(log n)ไฟ่ฏ็ๅบๆฏ
- ๅ ๅญๆฐๆฎๅบ็ดขๅผ
- ๅฎๆถ็ณป็ป
ๅฎ็ฐ็ฎๅฝ๏ผๅ่ฏญ่จๅฎ็ฐๆไปถ
ๆฆ่ฟฐ๏ผ
- ไธ็ง่ชๅนณ่กกBST๏ผๆฏAVLๆ ๆดๅฎฝๆพ็ๅนณ่กกๆกไปถ
- ๆฏไธช่็นๆ้ข่ฒๅฑๆง๏ผ็บขๆ้ป๏ผ
- ้่ฟ้ข่ฒ็บฆๆๅๆ่ฝฌไฟๆ่ฟไผผๅนณ่กก
- ๆๅ้ซๅบฆ โค 2log(n+1)
็บข้ปๆ ๆง่ดจ็คบๆ๏ผ
็บข้ปๆ ็ไบไธชๆง่ดจ:
1. ๆฏไธช่็นๆฏ็บข่ฒๆ้ป่ฒ
2. ๆ น่็นๆฏ้ป่ฒ
3. ๆๆๅถๅญ(NIL)ๆฏ้ป่ฒ
4. ็บข่ฒ่็น็ๅญ่็นๅฟ
้กปๆฏ้ป่ฒ
(ไธ่ฝๆ่ฟ็ปญ็บข่ฒ่็น)
5. ไปไปปไธ่็นๅฐๅ
ถๅถๅญ็ๆๆ่ทฏๅพๅ
ๅซ็ธๅๆฐ็ฎ็้ป่ฒ่็น
(้ป้ซๅบฆ็ธๅ)
็บข้ปๆ ็ปๆ็คบไพ:
โโโโโโโ
โ 30B โ โ ๆ น่็น้ป่ฒ
โโโฌโโโโ
โ
โโโโโโดโโโโโ
โ โ
โโโโโ โโโโโ
โ20Rโ โ40Rโ โ ็บข่ฒ่็น
โโโฌโโ โโโฌโโ
โ โ
โโโดโโ โโโดโโ
โ โ โ โ
โโโโโโโโโโ โโโโโโโโโโ
โ10Bโโ25Bโ โ35Bโโ50Bโ โ ้ป่ฒๅถๅญ
โโโโโโโโโโ โโโโโโโโโโ
ไธบไปไน็บข้ปๆ ๆฏAVLๆ ๆดๅฎ็จ?
โข AVLๆ ไธฅๆ ผๅนณ่กก๏ผๆๅ
ฅๅ ้ค้่ฆๆดๅคๆ่ฝฌ
โข ็บข้ปๆ ๆๅ
ฅๆๅค2ๆฌกๆ่ฝฌ๏ผๅ ้คๆๅค3ๆฌกๆ่ฝฌ
โข ็บข้ปๆ ๆฅ่ฏข็ฅๆ
ขไฝๆๅ
ฅๅ ้คๆดๅฟซ
โข ๅฎ้
ๅบ็จ๏ผๅฆC++ map/setใJava TreeMap๏ผๅค็จ็บข้ปๆ
ๆถ้ดๅคๆๅบฆ:
ๆ็ดขใๆๅ
ฅใๅ ้ค้ฝๆฏ O(log n)
ๆ ธๅฟๆๆณ๏ผ
- ็จ้ข่ฒ็บฆๆไปฃๆฟไธฅๆ ผ้ซๅบฆๅนณ่กก
- ๅๅฐๆ่ฝฌๆฌกๆฐ๏ผๆ้ซๆๅ ฅๅ ้คๆ็
ๅบ็จ๏ผ
- C++ STL map/set
- Java TreeMap/TreeSet
- Linuxๅ ๆ ธ่ฐๅบฆๅจ
- ๆฐๆฎๅบ็ดขๅผ
ๆฆ่ฟฐ๏ผ
- ๅฎๅ จไบๅๆ ๏ผๅฏ็จๆฐ็ป้ซๆๅญๅจ
- ๅคง้กถๅ ๏ผ็ถ่็น โฅ ๅญ่็น
- ๅฐ้กถๅ ๏ผ็ถ่็น โค ๅญ่็น
- ๅ ้กถๆฏๆๅคง/ๆๅฐๅ ็ด
ๅ ็ปๆๅๆไฝ็คบๆ๏ผ
ๅคง้กถๅ ็ปๆ:
โโโโโโโ
โ 100 โ โ ๅ ้กถ๏ผๆๅคงๅผ
โโโโฌโโโ
โ
โโโโโโดโโโโโ
โ โ
โโโโโโโ โโโโโโโ
โ 80 โ โ 60 โ
โโโโฌโโโ โโโโฌโโโ
โ โ
โโโโดโโโ โโโโดโโโ
โ โ โ โ
โโโโโ โโโโโ โโโโโ โโโโโ
โ50 โ โ30 โ โ20 โ โ10 โ
โโโโโ โโโโโ โโโโโ โโโโโ
ๆฐ็ป่กจ็คบ (็ดขๅผไป1ๅผๅง):
็ดขๅผ: 1 2 3 4 5 6 7
โโโโโโฌโโโโโฌโโโโโฌโโโโโฌโโโโโฌโโโโโ
โ100 โ 80 โ 60 โ 50 โ 30 โ 20 โ 10โ
โโโโโโดโโโโโดโโโโโดโโโโโดโโโโโดโโโโโ
่็นๅ
ณ็ณป:
โข ็ถ่็น(i)็ๅทฆๅญ่็น = 2i
โข ็ถ่็น(i)็ๅณๅญ่็น = 2i + 1
โข ๅญ่็น(i)็็ถ่็น = โi/2โ
ๆๅ
ฅๆไฝ (ๆๅ
ฅ 90):
1. ๅฐ90ๆพๅฐๆฐ็ปๆซๅฐพ
2. ไธๆตฎๆไฝ: ไธ็ถ่็นๆฏ่พ๏ผ่ฅๅคงไบ็ถ่็นๅไบคๆข
3. ้ๅค็ดๅฐๆปก่ถณๅ ๆง่ดจ
100 100
/ \ ๆๅ
ฅ90 / \
80 60 โ 90 60
/ \ / / \ /
50 30 20 80 30 20
/
50
ไบคๆข90ๅ80ๅ โ
100 100
/ \ / \
90 60 90 60
/ \ / / \ /
80 30 20 80 30 20
/ /
50 50
ๆ ้ๅไบคๆข๏ผๅฎๆ!
ๅ ้คๅ ้กถ:
1. ๅฐๅ ้กถไธๆๅไธไธชๅ
็ด ไบคๆข
2. ็งป้คๆๅไธไธชๅ
็ด ๏ผๅๅ ้กถ๏ผ
3. ไธๆฒๆไฝ: ไธๅญ่็นไธญ่พๅคง่
ไบคๆข
4. ้ๅค็ดๅฐๆปก่ถณๅ ๆง่ดจ
ๆถ้ดๅคๆๅบฆ:
โข ๅปบๅ : O(n)
โข ๆๅ
ฅ: O(log n)
โข ๅ ้คๅ ้กถ: O(log n)
โข ๆฅ่ฏขๅ ้กถ: O(1)
ๆ ธๅฟๆๆณ๏ผ
- ๅฎๅ จไบๅๆ ไฟ่ฏๆฐ็ปๅญๅจ้ซๆ
- ๅ ๆง่ดจไฟ่ฏๅ ้กถๆฏๆๅผ
- ไธๆตฎ/ไธๆฒๆไฝ็ปดๆคๅ ๆง่ดจ
ๅบ็จ๏ผ
- ไผๅ ้ๅ
- ๅ ๆๅบ
- Top K้ฎ้ข
- ๅๅนถKไธชๆๅบๅ่กจ
ๅฎ็ฐ็ฎๅฝ๏ผbinarytree/ ๆ็ธๅ
ณ็ฎๅฝ
ๆฆ่ฟฐ๏ผ
- ๅค่ทฏๆ็ดขๆ ๏ผๆฏไธช่็นๅฏไปฅๆๅคไธชๅญ่็น
- ๆๆๅถๅญ่็นๅจๅไธๅฑ
- B+ๆ ็้ๅถๅญ่็นๅชๅญ้ฎ๏ผๆฐๆฎ้ฝๅจๅถๅญ
- ๅถๅญ่็น้พ่กจ่ฟๆฅ๏ผๆฏๆ่ๅดๆฅ่ฏข
B+ๆ ็ปๆ็คบๆ๏ผ
B+ๆ ็ปๆ (้ถๆฐm=3):
โโโโโโโโโโโโโโโโโโโ
โ 20 50 โ
โโโโโโโโโโฌโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโ
โ โ โ
โโโโโโดโโโโโ โโโโโโดโโโโโ โโโโโโดโโโโโ
โ 10 15 โ โ 30 40 โ โ 60 70 โ
โโโโโโฌโโโโโ โโโโโโฌโโโโโ โโโโโโฌโโโโโ
โ โ โ
โโโโโโดโโโโโ โโโโโโดโโโโโ โโโโโโดโโโโโ
โ โ โ โ โ โ
โโโโโโโโโ โโโโโโโโโ โโโโโโโโโ โโโโโโโโโ โโโโโโโโโ โโโโโโโโโ
โ5โ8โ10 โโโ12โ15 โโโ20โ25 โโโ30โ35 โโโ40โ45 โโโ50โ55 โโโ60โ65 โโโ70โ75 โ
โโโโโโโโโ โโโโโโโโโ โโโโโโโโโ โโโโโโโโโ โโโโโโโโโ โโโโโโโโโ โโโโโโโโโ
ๆฐๆฎ้กต ๆฐๆฎ้กต ๆฐๆฎ้กต ๆฐๆฎ้กต ๆฐๆฎ้กต ๆฐๆฎ้กต ๆฐๆฎ้กต
็น็น:
โข ้ๅถๅญ่็นๅญ้ฎๅผ๏ผไธๅญๆฐๆฎ
โข ๅถๅญ่็นๅญๅฎ้
ๆฐๆฎ๏ผไธๆๅบ่ฟๆฅ
โข ๆฅ่ฏขๆ็็จณๅฎ: O(log n)
โข ้ๅธธ้ๅ็ฃ็ๅญๅจ๏ผๅๅฐI/O๏ผ
ๆฅๆพ 35:
1. ๆ น่็น: 20 < 35 < 50 โ ่ตฐไธญ้ดๅๆฏ
2. ไธญ้ด่็น: 30 < 35 < 40 โ ่ตฐไธญ้ดๅๆฏ
3. ๅถๅญ่็น: ๆพๅฐ35
่ๅดๆฅ่ฏข 15-45:
1. ๆพๅฐ15ๆๅจ็ๅถๅญ
2. ้กบ็ๅถๅญ้พ่กจ้ๅ็ดๅฐ่ถ
่ฟ45
3. ่ฟๅ15, 20, 25, 30, 35, 40
ๆ ธๅฟๆๆณ๏ผ
- ๅค่ทฏๆ ๅๅฐ็ฃ็I/O
- ๅถๅญ้พ่กจๆฏๆ้ซๆ่ๅดๆฅ่ฏข
- ไฟๆๅนณ่กก๏ผๆๆๅถๅญๅๅฑ
ๅบ็จ๏ผ
- ๆฐๆฎๅบ็ดขๅผ๏ผMySQL InnoDB๏ผ
- ๆไปถ็ณป็ป
- ็ฃ็ๅญๅจไผๅ
ไบๅๆ ็ไธ็งDFS้ๅ:
โโโโโโโ
โ F โ
โโโฌโโโโ
โ
โโโโโโดโโโโโ
โ โ
โโโโโ โโโโโ
โ B โ โ G โ
โโโฌโโ โโโโโ
โ
โโโโดโโโ
โ โ
โโโโโ โโโโโ
โ A โ โ D โ
โโโโโ โโโฌโโ
โ
โโโโดโโโ
โ โ
โโโโโ โโโโโ
โ C โ โ E โ
โโโโโ โโโโโ
ๅๅบ้ๅ (ๆ นโๅทฆโๅณ): F, B, A, D, C, E, G
ไธญๅบ้ๅ (ๅทฆโๆ นโๅณ): A, B, C, D, E, F, G
ๅๅบ้ๅ (ๅทฆโๅณโๆ น): A, C, E, D, B, G, F
้ๅ็ๅบ็จ:
โข ๅๅบ: ๅคๅถๆ ใๅบๅๅ
โข ไธญๅบ: BSTไธญๅพๅฐๆๅบๅบๅ
โข ๅๅบ: ๅ ้คๆ ใ่ฎก็ฎ็ฎๅฝๅคงๅฐ
ๅฑๅบ้ๅ (ไฝฟ็จ้ๅ):
โโโโโโโ ้ๅ: [F] ็ปๆ: []
โ F โ
โโโฌโโโโ
โ
โโโโโโดโโโโโ
โ โ
โโโโโ โโโโโ
โ B โ โ G โ
โโโฌโโ โโโโโ
โ
โโโโดโโโ
โ โ
โโโโโ โโโโโ
โ A โ โ D โ
โโโโโ โโโฌโโ
โ
โโโโดโโโ
โ โ
โโโโโ โโโโโ
โ C โ โ E โ
โโโโโ โโโโโ
่ฟ็จ:
1. ้ๅ: [F] ๅบ้F๏ผๅ
ฅ้B,G โ ้ๅ: [B,G] ็ปๆ: [F]
2. ้ๅ: [B,G] ๅบ้B๏ผๅ
ฅ้A,D โ ้ๅ: [G,A,D] ็ปๆ: [F,B]
3. ้ๅ: [G,A,D] ๅบ้G๏ผๆ ๅญ่็น โ ้ๅ: [A,D] ็ปๆ: [F,B,G]
4. ้ๅ: [A,D] ๅบ้A๏ผๆ ๅญ่็น โ ้ๅ: [D] ็ปๆ: [F,B,G,A]
5. ้ๅ: [D] ๅบ้D๏ผๅ
ฅ้C,E โ ้ๅ: [C,E] ็ปๆ: [F,B,G,A,D]
6. ้ๅ: [C,E] ๅบ้C๏ผๆ ๅญ่็น โ ้ๅ: [E] ็ปๆ: [F,B,G,A,D,C]
7. ้ๅ: [E] ๅบ้E๏ผๆ ๅญ่็น โ ้ๅ: [] ็ปๆ: [F,B,G,A,D,C,E]
ๆ็ป็ปๆ: F, B, G, A, D, C, E
ๅบ็จ:
โข ๆฅๆพๆ็ญ่ทฏๅพ๏ผๆ ๆๆ ๏ผ
โข ๆๅฑๆๅฐๆ
โข ๆฅๆพๆๅฑ็ๆๆ่็น
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๅบๆฏ โ ๆจ่ๆ ็ปๆ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโค
โ ้่ฆๅจๆๆๅบ โ BST/็บข้ปๆ โ
โ ้่ฆไธฅๆ ผO(log n)ไฟ่ฏ โ AVLๆ โ
โ ้ข็นๆๅ
ฅๅ ้ค๏ผๅถๅฐๆฅ่ฏข โ ็บข้ปๆ โ
โ ้่ฆไผๅ
้ๅ โ ๅ โ
โ ๆฐๆฎๅบ็ดขๅผ โ B+ๆ โ
โ ๅ็ผๅน้
๏ผ่ชๅจ่กฅๅ
จ๏ผ โ Trieๆ โ
โ ๅบ้ดๆฅ่ฏข โ ็บฟๆฎตๆ โ
โ ไธ็ธไบค้ๅๅๅนถ โ ๅนถๆฅ้ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโ
- ๆไปถ็ณป็ป๏ผ็ฎๅฝๆ ็ปๆ
- DOMๆ ๏ผHTML/XMLๆๆกฃ่งฃๆ
- ่ฏญๆณๅๆ๏ผ็ผ่ฏๅจ็่ฏญๆณๆ
- ๅณ็ญ็ณป็ป๏ผๅณ็ญๆ ๏ผๆบๅจๅญฆไน ๏ผ
- ็ๆฌๆงๅถ๏ผGit็ๆไบคๆ /Merkleๆ
| ๆไฝ | BST(ๅนณๅ) | BST(ๆๅ) | AVL | ็บข้ปๆ | ๅ |
|---|---|---|---|---|---|
| ๆ็ดข | O(log n) | O(n) | O(log n) | O(log n) | O(n) |
| ๆๅ ฅ | O(log n) | O(n) | O(log n) | O(log n) | O(log n) |
| ๅ ้ค | O(log n) | O(n) | O(log n) | O(log n) | O(log n) |
| ๆๅผ | O(log n) | O(n) | O(log n) | O(log n) | O(1) |
- ๆๆๆ ็ปๆ๏ผO(n)
- ๆฏไธช่็น้ขๅคๅผ้๏ผๅญ่็นๆ้ + ๅนณ่กกไฟกๆฏ
- C๏ผๆๅจๅฎ็ฐ๏ผ็่งฃๅ็
- Java๏ผTreeMap/TreeSet๏ผ็บข้ปๆ ๏ผ๏ผPriorityQueue๏ผๅ ๏ผ
- Go๏ผๆ ๆ ๅๆ ๅฎ็ฐ๏ผ้่ช่กๅฎ็ฐๆไฝฟ็จ็ฌฌไธๆนๅบ
- JavaScript๏ผๆ ๆ ๅๆ ๅฎ็ฐ
- Python๏ผๆ ๆ ๅBSTๅฎ็ฐ๏ผheapqๆจกๅ๏ผๅ ๏ผ
- Rust๏ผBTreeMap/BTreeSet๏ผBๆ ๏ผ๏ผBinaryHeap
- ไบๅๆ ๅบ็ก๏ผ็่งฃๆ ็ๅบๆฌๆฆๅฟตๅ้ๅ
- ไบๅๆ็ดขๆ ๏ผๆๆกBST็ๆ็ดขใๆๅ ฅใๅ ้ค
- ๅนณ่กกๆ ๏ผ็่งฃไธบไปไน้่ฆๅนณ่กก๏ผๅญฆไน AVLๆ็บข้ปๆ
- ๅ ๏ผ็่งฃๅ ็ๆง่ดจๅๅบ็จ
- ้ซ็บงๆ ๏ผBๆ ใTrieใ็บฟๆฎตๆ
- ่ฝๆๅไบๅๆ ็ไธ็งDFS้ๅ
- ่ฝๆๅBST็ๆๅ ฅๅๅ ้ค
- ็่งฃ่ชๅนณ่กกๆ ็ๆ่ฝฌๆไฝ
- ๆๆกๅ ็ไธๆตฎ/ไธๆฒๆไฝ
- ๅญฆไผๆ นๆฎๅบๆฏ้ๆฉๅ้็ๆ ็ปๆ