add Q&A of hashing, heap, sorting and tree chapter (#564)

* add`Q&A` of `stack_and_queue` chapter

* Update summary.md

* Update summary.md

* add`Q&A` of `hashing` chapter

* add`Q&A` of `hashing` chapter

* add`Q&A` of `hashing` chapter

* add`Q&A` of `tree` chapter

* add`Q&A` of `heap` chapter

* Update summary.md

* add`Q&A` of `sorting` chapter

* Update summary.md

* Update summary.md

* Update summary.md

---------

Co-authored-by: Yudong Jin <krahets@163.com>
This commit is contained in:
Sizhuo Long
2023-06-25 22:50:20 +10:00
committed by GitHub
parent 504dff1728
commit efc1c2f49f
4 changed files with 76 additions and 0 deletions

View File

@@ -6,3 +6,9 @@
- 完全二叉树非常适合用数组表示,因此我们通常使用数组来存储堆。
- 堆化操作用于维护堆的性质,在入堆和出堆操作中都会用到。
- 输入 $n$ 个元素并建堆的时间复杂度可以优化至 $O(n)$ ,非常高效。
## Q & A
!!! question "数据结构的“堆”与内存管理的“堆”是同一个概念吗?"
两者不是同一个概念,只是碰巧都叫堆。计算机系统内存中的堆是动态内存分配的一部分,程序在运行时可以使用它来存储数据。程序可以请求一定量的堆内存,用于存储如对象和数组等复杂结构。当这些数据不再需要时,程序需要释放这些内存,以防止内存泄露。相较于栈内存,堆内存的管理和使用需要更谨慎,不恰当的使用可能会导致内存泄露和野指针等问题。