Skip to content

Commit

Permalink
sagemathgh-39228: faster bidirectional dijkstra using pairing heap
Browse files Browse the repository at this point in the history
    
We improve methods `bidirectional_dijkstra` and
`bidirectional_dijkstra_special` from `c_graph.py` by using the new
pairing heap data structure (see sagemath#39046) instead of a `priority_queue`.


### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [ ] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#39228
Reported by: David Coudert
Reviewer(s): David Coudert, gmou3
  • Loading branch information
Release Manager committed Jan 15, 2025
2 parents 0d9d064 + 3962a93 commit c0158e0
Show file tree
Hide file tree
Showing 4 changed files with 204 additions and 201 deletions.
1 change: 1 addition & 0 deletions src/sage/data_structures/pairing_heap.pxd
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ cdef extern from "./pairing_heap.h" namespace "pairing_heap":
void decrease(TypeOfItem, TypeOfValue) except +
bint contains(TypeOfItem)
TypeOfValue value(TypeOfItem) except +
size_t size()

cdef cppclass PairingHeapNodePy:
PyObject * value # value associated with the item
Expand Down
Loading

0 comments on commit c0158e0

Please sign in to comment.