auto commit
This commit is contained in:
@ -694,7 +694,7 @@ private void swim(int k) {
|
||||
}
|
||||
```
|
||||
|
||||
类似地,当一个节点比子节点来得小,也需要不断地向下进行比较和交换操作,把这种操作称为下沉。一个节点如果有两个子节点,应当与两个子节点中最大那么节点进行交换。
|
||||
类似地,当一个节点比子节点来得小,也需要不断地向下进行比较和交换操作,把这种操作称为下沉。一个节点如果有两个子节点,应当与两个子节点中最大那个节点进行交换。
|
||||
|
||||
<div align="center"> <img src="../pics//72f0ff69-138d-4e54-b7ac-ebe025d978dc.png" width="400"/> </div><br>
|
||||
|
||||
@ -796,7 +796,7 @@ public class HeapSort<T extends Comparable<T>> extends Sort<T> {
|
||||
|
||||
对于堆排序,由于要对 N 个节点进行下沉操作,因此复杂度为 NlogN。
|
||||
|
||||
堆排序时一种原地排序,没有利用额外的空间。
|
||||
堆排序是一种原地排序,没有利用额外的空间。
|
||||
|
||||
现代操作系统很少使用堆排序,因为它无法利用局部性原理进行缓存,也就是数组元素很少和相邻的元素进行比较。
|
||||
|
||||
@ -1123,7 +1123,7 @@ public class ArrayStack<Item> implements MyStack<Item> {
|
||||
|
||||
### 2. 链表实现
|
||||
|
||||
需要使用链表的头插法来实现,因为头插法中最后压入栈的元素在链表的开头,它的 next 指针指向前一个压入栈的元素,在弹出元素时就可以通过 next 指针遍历到前一个压入栈的元素从而让这个元素称为新的栈顶元素。
|
||||
需要使用链表的头插法来实现,因为头插法中最后压入栈的元素在链表的开头,它的 next 指针指向前一个压入栈的元素,在弹出元素时就可以通过 next 指针遍历到前一个压入栈的元素从而让这个元素成为新的栈顶元素。
|
||||
|
||||
```java
|
||||
public class ListStack<Item> implements MyStack<Item> {
|
||||
|
Reference in New Issue
Block a user