{"id":18575855,"url":"https://github.com/d-michail/jheaps","last_synced_at":"2025-04-09T11:10:50.536Z","repository":{"id":112379700,"uuid":"73641068","full_name":"d-michail/jheaps","owner":"d-michail","description":"Master repository for the JHeaps project","archived":false,"fork":false,"pushed_at":"2021-03-20T17:21:47.000Z","size":1466,"stargazers_count":47,"open_issues_count":4,"forks_count":9,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-02T03:56:36.294Z","etag":null,"topics":["algorithms","data-structures","fibonacci-heap","heap","meldable-heaps","pairing-heap","priority-queue"],"latest_commit_sha":null,"homepage":"http://www.jheaps.org","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/d-michail.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-11-13T20:28:43.000Z","updated_at":"2024-09-26T12:57:11.000Z","dependencies_parsed_at":"2023-05-14T05:15:47.722Z","dependency_job_id":null,"html_url":"https://github.com/d-michail/jheaps","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-michail%2Fjheaps","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-michail%2Fjheaps/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-michail%2Fjheaps/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-michail%2Fjheaps/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/d-michail","download_url":"https://codeload.github.com/d-michail/jheaps/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248027407,"owners_count":21035594,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithms","data-structures","fibonacci-heap","heap","meldable-heaps","pairing-heap","priority-queue"],"created_at":"2024-11-06T23:22:29.808Z","updated_at":"2025-04-09T11:10:50.502Z","avatar_url":"https://github.com/d-michail.png","language":"Java","funding_links":[],"categories":["\u003ca name=\"Java\"\u003e\u003c/a\u003eJava"],"sub_categories":[],"readme":"[![JHeaps](https://github.com/d-michail/jheaps/actions/workflows/master.yaml/badge.svg)](https://github.com/d-michail/jheaps/actions/workflows/master.yaml)\n\n# JHeaps Library\n\nCopyright (C) 2014-2021 Dimitrios Michail\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n***\n\n## What is this library?\n\nThis library contains various heap implementations written in Java.\n\n* It is easy to use\n* The data structures have a well defined interface\n* It is fast and well documented\n* The heaps are written in a similar way as in the JDK\n* It does not depend on other libraries, so classpathing 'jheaps.jar' is sufficient\n  to use in your project.\n\n## What is a heap?\n\nA heap is a priority queue data type which contains elements with keys (duplicate keys\nare permitted) from a totally-ordered universe. A min-oriented heap \nsupports the following core operations: \n\n* MAKE-HEAP(): create an empty heap\n* INSERT(H,x): insert an element x into the heap\n* FIND-MIN(H): return an element with the smallest key\n* EXTRACT-MIN(H): remove the element with the smallest key\n* IS-EMPTY(H): is the heap empty?\n* SIZE(H): return the number of elements of the heap\n* CLEAR(H): remove all elements of the heap\n\nA heap does not support a search operation. A special type of heap called explicit or \naddressable resolves this issue by returning a handle when inserting a new element. This\nhandle can later be used to additionally perform the following operations: \n\n* DECREASE-KEY(H,x,k): decrease the key of element x to k\n* DELETE(H,x): delete the element x from the heap\n\nImplicit heaps are represented using arrays. They are not addressable as the location of the elements\nin memory can change. However, they can be made to be addressable by using an additional layer of indirection.\nIn this case we store handles inside the array. Each handle contains an additional integer property, designating\nthe location in the array where the handle is stored. \n\nSome heaps are meldable, that is they efficiently support the union operation: \n\n* MELD(H1,H2): add all elements of H2 into H1 and destroy H2\n\nAs a general rule, heaps using an array representation are not meldable.\n\n## Available Heaps\n\nThe library contains an extensive collection of heap data structures such as:\n\n* Tree-based\n  * Fibonacci mergeable and addressable heaps\n  * Simple Fibonacci heaps\n  * Pairing mergeable and addressable heaps\n  * Costless-meld variant of Pairing heaps\n  * Rank-Pairing (type-1) mergeable and addressable heaps\n  * Leftist mergeable and addressable heaps\n  * Explicit binary tree addressable heaps\n  * Binary tree soft heaps\n  * Skew heaps\n* Dag-based\n  * Hollow mergeable and addressable heaps\n* Double-ended mergeable and addressable heaps\n  * Reflected Fibonacci heaps\n  * Reflected Pairing heaps\n* Array-based\n  * Binary heaps\n  * Binary addressable heaps\n  * D-ary heaps\n  * D-ary addressable heaps\n  * Binary weak heaps\n  * Binary weak heaps supporting bulk insertion\n  * Highly optimized binary heaps for integer keys using the Wegener\n   bottom-up heuristic and sentinel values\n* Double-ended array-based\n  * Binary MinMax heaps\n* Monotone heaps\n  * Addressable radix heaps with double, long, int or BigInteger keys\n  * Non-addressable radix heaps with double, long, int or BigInteger keys\n\n## Compatibility\n\nThe library requires JDK v1.8 and above. \n\n## Python Bindings\n\nWe also provide Python bindings which compile the Java library into a native shared library using\n[GraalVM](https://www.graalvm.org/).\nThe result is a native self-contained library with no dependency on the JVM! For more information\nsee the following links:\n\n* \u003chttps://pypi.org/project/jheaps/\u003e\n* \u003chttps://python-jheaps.readthedocs.io/en/latest/\u003e\n* \u003chttps://github.com/d-michail/python-jheaps/\u003e\n* \u003chttps://github.com/d-michail/jheaps-capi/\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd-michail%2Fjheaps","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fd-michail%2Fjheaps","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd-michail%2Fjheaps/lists"}