kopia lustrzana https://github.com/animator/learn-python
Update heaps.md
rodzic
095ca58205
commit
ca64d125b0
|
@ -1,4 +1,4 @@
|
||||||
# Heaps in Python3
|
# Heaps
|
||||||
|
|
||||||
## Definition:
|
## Definition:
|
||||||
Heaps are a crucial data structure that support efficient priority queue operations. They come in two main types: min heaps and max heaps. Python's heapq module provides a robust implementation for min heaps, and with some minor adjustments, it can also be used to implement max heaps.
|
Heaps are a crucial data structure that support efficient priority queue operations. They come in two main types: min heaps and max heaps. Python's heapq module provides a robust implementation for min heaps, and with some minor adjustments, it can also be used to implement max heaps.
|
||||||
|
@ -34,14 +34,17 @@ smallest = heapq.heappop(min_heap)
|
||||||
print("Smallest element:", smallest)
|
print("Smallest element:", smallest)
|
||||||
print("Min Heap after pop:", min_heap)
|
print("Min Heap after pop:", min_heap)
|
||||||
```
|
```
|
||||||
|
|
||||||
**Output:**
|
**Output:**
|
||||||
```python
|
|
||||||
|
```
|
||||||
Min Heap: [3, 5, 10, 12]
|
Min Heap: [3, 5, 10, 12]
|
||||||
Smallest element: 3
|
Smallest element: 3
|
||||||
Min Heap after pop: [5, 12, 10]
|
Min Heap after pop: [5, 12, 10]
|
||||||
```
|
```
|
||||||
|
|
||||||
- **Max Heap:** To create a max heap, we can store negative values.
|
- **Max Heap:** To create a max heap, we can store negative values.
|
||||||
|
|
||||||
```python
|
```python
|
||||||
import heapq
|
import heapq
|
||||||
|
|
||||||
|
@ -63,23 +66,25 @@ print("Largest element:", largest)
|
||||||
print("Max Heap after pop:", [-x for x in max_heap])
|
print("Max Heap after pop:", [-x for x in max_heap])
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
**Output:**
|
**Output:**
|
||||||
```python
|
|
||||||
|
```
|
||||||
Max Heap: [12, 10, 3, 5]
|
Max Heap: [12, 10, 3, 5]
|
||||||
Largest element: 12
|
Largest element: 12
|
||||||
Max Heap after pop: [10, 5, 3]
|
Max Heap after pop: [10, 5, 3]
|
||||||
```
|
```
|
||||||
|
|
||||||
## Heap Operations:
|
## Heap Operations:
|
||||||
1. **Push Operation:** Adds an element to the heap, maintaining the heap property.<br>
|
1. **Push Operation:** Adds an element to the heap, maintaining the heap property.
|
||||||
```python
|
```python
|
||||||
heapq.heappush(heap, item)
|
heapq.heappush(heap, item)
|
||||||
```
|
```
|
||||||
2. **Pop Operation:** Removes and returns the smallest element from the heap.<br>
|
2. **Pop Operation:** Removes and returns the smallest element from the heap.
|
||||||
```python
|
```python
|
||||||
smallest = heapq.heappop(heap)
|
smallest = heapq.heappop(heap)
|
||||||
```
|
```
|
||||||
3. **Heapify Operation:** Converts a list into a heap in-place.<br>
|
3. **Heapify Operation:** Converts a list into a heap in-place.
|
||||||
```python
|
```python
|
||||||
heapq.heapify(list)
|
heapq.heapify(list)
|
||||||
```
|
```
|
||||||
|
@ -118,7 +123,7 @@ print(heapq.heappop(li))
|
||||||
```
|
```
|
||||||
|
|
||||||
Output:
|
Output:
|
||||||
```python
|
```
|
||||||
The created heap is : [1, 3, 15, 77, 90]
|
The created heap is : [1, 3, 15, 77, 90]
|
||||||
The modified heap after push is : [1, 3, 4, 15, 77, 90]
|
The modified heap after push is : [1, 3, 4, 15, 77, 90]
|
||||||
The popped and smallest element is : 1
|
The popped and smallest element is : 1
|
||||||
|
|
Ładowanie…
Reference in New Issue