https://github.com/blueraja/high-speed-priority-queue-for-c-sharp
A C# priority queue optimized for pathfinding applications
https://github.com/blueraja/high-speed-priority-queue-for-c-sharp
c-sharp pathfinding priority-queue
Last synced: 10 months ago
JSON representation
A C# priority queue optimized for pathfinding applications
- Host: GitHub
- URL: https://github.com/blueraja/high-speed-priority-queue-for-c-sharp
- Owner: BlueRaja
- License: mit
- Created: 2015-06-19T21:11:09.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2021-07-26T02:51:30.000Z (over 4 years ago)
- Last Synced: 2025-04-06T05:11:09.893Z (11 months ago)
- Topics: c-sharp, pathfinding, priority-queue
- Language: C#
- Homepage:
- Size: 134 KB
- Stars: 1,196
- Watchers: 46
- Forks: 170
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# High Speed Priority Queue for C#
### Features ###
* Faster (for path-finding, at least) than any other C# priority queue out there!
* Easy to use
* No dependencies on third-party libraries
* Free for both personal and commercial use
* Implements `IEnumerable` for LINQ support!
* Fully unit-tested
* Has a **stable priority queue** implementation _(ie. if two items are enqueued with the same priority, they'll be dequeued in the same order they were enqueued)_
* Takes advantage of the new [forced inline support](http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.methodimploptions%28v=vs.110%29.aspx) when compiling under .Net 4.5, for even faster speeds
* Published to [NuGet](https://www.nuget.org/packages/OptimizedPriorityQueue/) - can [easily be added to any project](https://github.com/BlueRaja/High-Speed-Priority-Queue-for-C-Sharp/wiki/Getting-Started)
* Should work on .Net versions as old as .Net 2.0
### Is this software free? ###
**Yes!** See the [license page](https://github.com/BlueRaja/High-Speed-Priority-Queue-for-C-Sharp/wiki/License) for more details.
### Getting Started ###
This project contains two priority queue implementations - one that's super-fast _(without thread-safety, safety checks, etc)_, and one that's easy/safe to use.
See the [Getting Started](https://github.com/BlueRaja/High-Speed-Priority-Queue-for-C-Sharp/wiki/Getting-Started) page, or decide what type of queue you want:
* [I want a PriorityQueue that's easy to use](https://github.com/BlueRaja/High-Speed-Priority-Queue-for-C-Sharp/wiki/Using-the-SimplePriorityQueue)
* [I want a PriorityQueue that's as _fast_ as possible](https://github.com/BlueRaja/High-Speed-Priority-Queue-for-C-Sharp/wiki/Using-the-FastPriorityQueue)