{"id":16604739,"url":"https://github.com/mavroprovato/algorithms","last_synced_at":"2025-12-05T15:03:06.517Z","repository":{"id":87419347,"uuid":"50250200","full_name":"mavroprovato/algorithms","owner":"mavroprovato","description":"A library that implements various data structures and algorithms in C.","archived":false,"fork":false,"pushed_at":"2019-11-05T21:49:27.000Z","size":155,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-17T10:43:58.718Z","etag":null,"topics":["algorithms","c","data-structures"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mavroprovato.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-01-23T17:46:39.000Z","updated_at":"2019-11-05T21:49:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"43ef31cd-f2c3-4dfc-a010-d9a835e1b211","html_url":"https://github.com/mavroprovato/algorithms","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mavroprovato%2Falgorithms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mavroprovato%2Falgorithms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mavroprovato%2Falgorithms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mavroprovato%2Falgorithms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mavroprovato","download_url":"https://codeload.github.com/mavroprovato/algorithms/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242752627,"owners_count":20179547,"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","c","data-structures"],"created_at":"2024-10-12T00:59:10.417Z","updated_at":"2025-12-05T15:03:01.481Z","avatar_url":"https://github.com/mavroprovato.png","language":"C","readme":"[![Build Status](https://travis-ci.org/mavroprovato/algorithms.svg?branch=master)](https://travis-ci.org/mavroprovato/algorithms)\n\nIntroduction\n============\n\nA library that implements various data structures and algorithms in C.\n\nThe data structures implemented are:\n\n* [Disjoint-set](https://en.wikipedia.org/wiki/Disjoint-set_data_structure) data structure (Union-Find).\n* [Linked list](https://en.wikipedia.org/wiki/Linked_list) data structure.\n* [Doubly linked list](https://en.wikipedia.org/wiki/Doubly_linked_list) data structure.\n* [Stack](https://en.wikipedia.org/wiki/Stack_\\(abstract_data_type\\)) implementations based on:\n    * Resizing arrays\n    * [Linked lists](https://en.wikipedia.org/wiki/Linked_list)\n* [Queue](https://en.wikipedia.org/wiki/Queue_\\(abstract_data_type\\)) implementations based on:\n    * Fixed size arrays\n    * Resizing arrays\n    * [Linked lists](https://en.wikipedia.org/wiki/Linked_list)\n* [Set](https://en.wikipedia.org/wiki/Set_\\(abstract_data_type\\)) implementations based on:\n    * [Binary Search Trees](https://en.wikipedia.org/wiki/Binary_search_tree)\n    * [Tries](https://en.wikipedia.org/wiki/Trie)\n\nThe algorithms implemented are:\n\n* Various sorting algorithms:\n    * [Insertion sort](https://en.wikipedia.org/wiki/Insertion_sort)\n    * [Bubble sort](https://en.wikipedia.org/wiki/Bubble_sort)\n    * [Selection sort](https://en.wikipedia.org/wiki/Selection_sort)\n    * [Shellsort](https://en.wikipedia.org/wiki/Shellsort)\n    * [Merge sort](https://en.wikipedia.org/wiki/Merge_sort)\n    * [Quicksort](https://en.wikipedia.org/wiki/Quicksort)\n\nAlso, some programs are included which use those data structures and solve some classic problems. These programs are:\n\n* Testing an expression for balanced parentheses.\n* Checking whether a grid [percolates](https://en.wikipedia.org/wiki/Percolation_theory) or not.\n* Calculating the running median of a list of integers\n\nInstallation\n============\n\nThe library is written against C11, so a conforming compiler is needed, like [gcc](https://gcc.gnu.org/) or\n[clang](https://clang.llvm.org/). Also, for the programs, an implementation conforming to POSIX.1-2008 is required.\nCurrently the project has been tested with GCC version 7.3.0 on Ubuntu 18.04.\n\nThe project uses [CMake](https://cmake.org/) as the build system. In order to build it, run the following commands:\n\n```$bash\nmkdir cmake-build-debug\ncd cmake-build-debug\ncmake ..\nmake\n```\n\nBibliography\n============\n* [Algorithms, 4th Edition](http://algs4.cs.princeton.edu/home/)\n* [Introduction to Algorithms, 3rd Edition](https://mitpress.mit.edu/books/introduction-algorithms)\n* Δομές Δεδομένων, Ιωάννης Μανωλόπουλος\n* [Libalv](http://adtinfo.org/libavl.html/)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmavroprovato%2Falgorithms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmavroprovato%2Falgorithms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmavroprovato%2Falgorithms/lists"}