{"id":24779014,"url":"https://github.com/bjornmelin/data-structures-and-algorithms","last_synced_at":"2026-03-02T03:31:49.221Z","repository":{"id":274224384,"uuid":"922269253","full_name":"BjornMelin/data-structures-and-algorithms","owner":"BjornMelin","description":"🛠️ A comprehensive collection of data structures and algorithms implemented in multiple programming languages. Perfect for learning, interviews, and competitive programming!","archived":false,"fork":false,"pushed_at":"2025-03-11T19:37:05.000Z","size":361,"stargazers_count":2,"open_issues_count":17,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-24T03:13:43.347Z","etag":null,"topics":["algorithms","coding-practice","competitive-programming","computer-science","data-structures","data-structures-and-algorithms","educational","interview-preparation","java","programming","python","software-engineering"],"latest_commit_sha":null,"homepage":"","language":"Java","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/BjornMelin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"2025-01-25T18:59:10.000Z","updated_at":"2025-02-18T09:16:52.000Z","dependencies_parsed_at":"2025-01-25T20:34:24.058Z","dependency_job_id":null,"html_url":"https://github.com/BjornMelin/data-structures-and-algorithms","commit_stats":null,"previous_names":["bjornmelin/data-structures-and-algorithms"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BjornMelin%2Fdata-structures-and-algorithms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BjornMelin%2Fdata-structures-and-algorithms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BjornMelin%2Fdata-structures-and-algorithms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BjornMelin%2Fdata-structures-and-algorithms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BjornMelin","download_url":"https://codeload.github.com/BjornMelin/data-structures-and-algorithms/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248140958,"owners_count":21054374,"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","coding-practice","competitive-programming","computer-science","data-structures","data-structures-and-algorithms","educational","interview-preparation","java","programming","python","software-engineering"],"created_at":"2025-01-29T09:26:57.112Z","updated_at":"2026-03-02T03:31:49.181Z","avatar_url":"https://github.com/BjornMelin.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Data Structures and Algorithms 🎯\n\n[![Java](https://img.shields.io/badge/java-17%2B-orange.svg)](https://www.oracle.com/java/)\n[![Python](https://img.shields.io/badge/python-3.8%2B-blue.svg)](https://www.python.org/)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](CONTRIBUTING.md)\n\n\u003e A comprehensive collection of data structures and algorithms implemented in multiple programming languages. Perfect for learning, interviews, and competitive programming!\n\n[✨ Features](#features) • [💻 Languages](#languages) • [📁 Structure](#project-structure) • [🚀 Quick Start](#getting-started) • [🤝 Contributing](#contributing)\n\n## 📑 Table of Contents\n\n- [✨ Features](#features)\n- [💻 Languages](#languages)\n- [📁 Project Structure](#project-structure)\n- [🚀 Getting Started](#getting-started)\n  - [Prerequisites](#prerequisites)\n  - [Setup](#setup)\n- [📚 Documentation](#documentation)\n  - [Data Structures](#data-structures)\n  - [Algorithms](#algorithms)\n- [🤝 Contributing](#contributing)\n- [✍️ Authors](#authors)\n- [📚 How to Cite](#how-to-cite)\n- [📄 License](#license)\n- [🙏 Acknowledgments](#acknowledgments)\n\n## ✨ Features\n\n- Clean, efficient implementations of common data structures\n- Well-documented algorithms with time and space complexity analysis\n- Comprehensive test coverage for all implementations\n- Language-specific best practices and idioms\n- Interview preparation materials and example problems\n- Multiple implementation approaches with comparisons\n\n## 💻 Languages\n\nCurrently implemented in:\n\n- Java (JDK 17+)\n- Python (3.8+)\n\n_Future languages planned: JavaScript, C++_\n\n## 📁 Project Structure\n\n```mermaid\ngraph TD\n    A[algorithms-and-data-structures] --\u003e B[java]\n    A[algorithms-and-data-structures] --\u003e C[python]\n    A --\u003e D[docs]\n    B --\u003e E[src/algorithms]\n    B --\u003e F[src/data_structures]\n    B --\u003e G[tests]\n    C --\u003e H[algorithms]\n    H --\u003e I[sorting]\n    H --\u003e J[searching]\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eClick to expand full directory structure\u003c/summary\u003e\n\n```plaintext\nalgorithms-and-data-structures/\n├── README.md\n├── CONTRIBUTING.md\n├── LICENSE\n├── docs/\n│   └── implementation_guides/\n├── java/\n│   ├── README.md\n│   ├── src/\n│   │   ├── algorithms/\n│   │   │   ├── sorting/\n│   │   │   ├── searching/\n│   │   │   └── graph/\n│   │   └── data_structures/\n│   │       ├── linear/\n│   │       ├── trees/\n│   │       └── graphs/\n│   └── tests/\n└── python/\n    ├── README.md\n    ├── algorithms/\n    │   ├── sorting/\n    │   │   ├── bubble_sort/\n    │   │   ├── bucket_sort/\n    │   │   ├── counting_sort/\n    │   │   ├── heap_sort/\n    │   │   ├── insertion_sort/\n    │   │   ├── merge_sort/\n    │   │   ├── quick_sort/\n    │   │   ├── radix_sort/\n    │   │   ├── selection_sort/\n    │   │   └── tim_sort/\n    │   └── searching/\n    │       ├── binary_search/\n    │       ├── exponential_search/\n    │       ├── fibonacci_search/\n    │       ├── hash_based_search/\n    │       ├── interpolation_search/\n    │       ├── jump_search/\n    │       ├── linear_search/\n    │       └── ternary_search/\n    ├── tests/\n    │   └── algorithms/\n    │       ├── searching/\n    │       │   ├── test_binary_search.py\n    │       │   ├── test_exponential_search.py\n    │       │   ├── test_fibonacci_search.py\n    │       │   ├── test_hash_based_search.py\n    │       │   ├── test_interpolation_search.py\n    │       │   ├── test_jump_search.py\n    │       │   ├── test_linear_search.py\n    │       │   └── test_ternary_search.py\n    │       └── sorting/\n    │           ├── test_bubble_sort.py\n    │           ├── test_bucket_sort.py\n    │           ├── test_counting_sort.py\n    │           ├── test_heap_sort.py\n    │           ├── test_insertion_sort.py\n    │           ├── test_merge_sort.py\n    │           ├── test_quick_sort.py\n    │           ├── test_radix_sort.py\n    │           ├── test_selection_sort.py\n    │           └── test_tim_sort.py\n    ├── benchmarks/\n    │   ├── search_benchmark_results.md\n    │   └── sort_benchmark_results.md\n    ├── requirements.txt\n    └── setup.py\n```\n\n\u003c/details\u003e\n\n## 🚀 Getting Started\n\n### Prerequisites\n\n- Java 17+ (for Java implementations)\n- Python 3.8+ (for Python implementations)\n- Git\n\n### Setup\n\n```bash\n# Clone repository\ngit clone https://github.com/BjornMelin/algorithms-and-data-structures.git\ncd algorithms-and-data-structures\n\n# For Java\ncd java\n./gradlew build\n\n# For Python\ncd python\npython -m pip install -r requirements.txt\npython -m pytest\n```\n\n## 📚 Documentation\n\n### Data Structures\n\n| Structure   | Java | Python | Time Complexity (Average)  |\n| ----------- | ---- | ------ | -------------------------- |\n| Linked List | ✅   | ❌     | Access: O(n), Insert: O(1) |\n| Binary Tree | ✅   | ❌     | Search: O(log n)           |\n| Hash Table  | ✅   | ❌     | Search: O(1)               |\n| Stack       | ✅   | ❌     | Push/Pop: O(1)             |\n| Queue       | ✅   | ❌     | Enqueue/Dequeue: O(1)      |\n\n### Algorithms\n\n| Algorithm            | Category  | Java | Python | Time Complexity |\n| -------------------- | --------- | ---- | ------ | --------------- |\n| Quick Sort           | Sorting   | ✅   | ✅     | O(n log n)      |\n| Merge Sort           | Sorting   | ✅   | ✅     | O(n log n)      |\n| Heap Sort            | Sorting   | ✅   | ✅     | O(n log n)      |\n| Binary Search        | Searching | ✅   | ✅     | O(log n)        |\n| Linear Search        | Searching | ❌   | ✅     | O(n)            |\n| Jump Search          | Searching | ❌   | ✅     | O(√n)           |\n| Interpolation Search | Searching | ❌   | ✅     | O(log log n)    |\n| Exponential Search   | Searching | ❌   | ✅     | O(log n)        |\n| Fibonacci Search     | Searching | ❌   | ✅     | O(log n)        |\n| Ternary Search       | Searching | ❌   | ✅     | O(log n)        |\n| Hash-based Search    | Searching | ❌   | ✅     | O(1)            |\n| Bubble Sort          | Sorting   | ❌   | ✅     | O(n^2)          |\n| Selection Sort       | Sorting   | ❌   | ✅     | O(n^2)          |\n| Insertion Sort       | Sorting   | ❌   | ✅     | O(n^2)          |\n| Radix Sort           | Sorting   | ❌   | ✅     | O(nk)           |\n| Counting Sort        | Sorting   | ❌   | ✅     | O(n + k)        |\n| Bucket Sort          | Sorting   | ❌   | ✅     | O(n + k)        |\n| Tim Sort             | Sorting   | ❌   | ✅     | O(n log n)      |\n\n## 🤝 Contributing\n\nContributions are welcome! Please read our [Contributing Guidelines](CONTRIBUTING.md) for details on how to submit pull requests, report issues, and contribute to the project.\n\n## ✍️ Authors\n\n**Bjorn Melin**\n\n- GitHub: [@BjornMelin](https://github.com/BjornMelin)\n- LinkedIn: [Bjorn Melin](https://linkedin.com/in/bjorn-melin)\n\n## 📚 How to Cite\n\nIf you use this repository in your research or project, please cite it as:\n\n```bibtex\n@misc{melin2024dsa,\n  author = {Melin, Bjorn},\n  title = {Data Structures and Algorithms Implementation},\n  year = {2024},\n  publisher = {GitHub},\n  journal = {GitHub Repository},\n  howpublished = {\\url{https://github.com/BjornMelin/algorithms-and-data-structures}},\n  commit = {master}\n}\n```\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- Various computer science textbooks and online resources\n- Open source community\n- Interview preparation materials\n\n---\n\nMade with ⚡️ by Bjorn Melin\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbjornmelin%2Fdata-structures-and-algorithms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbjornmelin%2Fdata-structures-and-algorithms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbjornmelin%2Fdata-structures-and-algorithms/lists"}