{"id":20187471,"url":"https://github.com/humbertodias/java-data-structures-algorithms","last_synced_at":"2025-04-10T06:43:59.257Z","repository":{"id":133698868,"uuid":"58332987","full_name":"humbertodias/java-data-structures-algorithms","owner":"humbertodias","description":"Java Data Structure Algorithms","archived":false,"fork":false,"pushed_at":"2024-02-15T16:41:34.000Z","size":6399,"stargazers_count":11,"open_issues_count":0,"forks_count":12,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-02-16T16:52:15.245Z","etag":null,"topics":["java","queue","search-algorithm","sorting-algorithms","stack"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/humbertodias.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"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},"funding":{"github":"humbertodias"}},"created_at":"2016-05-08T21:49:42.000Z","updated_at":"2024-02-07T01:51:29.000Z","dependencies_parsed_at":"2024-02-07T02:47:22.913Z","dependency_job_id":null,"html_url":"https://github.com/humbertodias/java-data-structures-algorithms","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/humbertodias%2Fjava-data-structures-algorithms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/humbertodias%2Fjava-data-structures-algorithms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/humbertodias%2Fjava-data-structures-algorithms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/humbertodias%2Fjava-data-structures-algorithms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/humbertodias","download_url":"https://codeload.github.com/humbertodias/java-data-structures-algorithms/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224558729,"owners_count":17331393,"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":["java","queue","search-algorithm","sorting-algorithms","stack"],"created_at":"2024-11-14T03:24:07.842Z","updated_at":"2025-04-10T06:43:59.241Z","avatar_url":"https://github.com/humbertodias.png","language":"Java","readme":"[![Build, Test](https://github.com/humbertodias/java-data-structures-algorithms/actions/workflows/build.yml/badge.svg)](https://github.com/humbertodias/java-data-structures-algorithms/actions/workflows/build.yml)\n\n# Java Data Structure Algorithms\n\nData Structure Algorithms using Java\n\n## Prerequisites\n\n1. Git 2.6+\n2. Maven 3+\n3. Java 8+\n\n## Sorting\n\n* [Bubble](src/main/java/dsa/sort/BubbleSort.java), [Insertion](src/main/java/dsa/sort/InsertionSort.java), [Selection](src/main/java/dsa/sort/SelectionSort.java), [Merge](src/main/java/dsa/sort/MergeSort.java)\n\n\t![Preview](doc/bubble-sort.gif)\n\t![Preview](doc/insertion-sort.gif)\n\t![Preview](doc/selection-sort.gif)\n\t![Preview](doc/merge-sort.gif)\n\n* [Shell](src/main/java/dsa/sort/ShellSort.java), [Heap](src/main/java/dsa/sort/HeapSort.java), [Quick](src/main/java/dsa/sort/QuickSort.java), [Radix](src/main/java/dsa/sort/RadixSort.java)\n\n\t![Preview](doc/shell-sort.gif)\n\t![Preview](doc/heap-sort.gif)\n\t![Preview](doc/quick-sort.gif)\n\n## Searching\n\n* [Binary](src/main/java/dsa/search/BinarySearch.java), [Sequential](src/main/java/dsa/search/SequentialSearch.java)\n\n\t![Preview](doc/binary-and-linear-search.gif)\n\n## Data Structure\n\n1. Stack\n\n\t![Preview](doc/stack.jpg)\n\n\t[StackArray](src/main/java/dsa/stack/StackArray.java),\n\t[StackLinked](src/main/java/dsa/stack/StackLinkedList.java)\n\n2. Queue\n\n\t* [Array](src/main/java/dsa/queue/QueueArray.java) or [Linked](src/main/java/dsa/queue/QueueLinkedList.java)\n\n\t![Preview](doc/queue.jpg)\n\t\n\t* [Minimum](src/main/java/dsa/queue/priority/MinPQ.java) / [Maximum](src/main/java/dsa/queue/priority/MaxPQ.java) Priority Queue\n\n\t![Preview](doc/priorityqueue.png)\n\n3. LinkedList\n\t\n\t* [Singly](src/main/java/dsa/list/SinglyLinkedList.java)\t \n\t\n\t![Preview](doc/linked_list.jpg)\n\n\t* [Doubly](src/main/java/dsa/list/DoublyLinkedList.java)\n\t\n\t![Preview](doc/doubly_linked_list.jpg)\n\t\t\n\t* [Circular](src/main/java/dsa/list/CircularLinkedList.java)\n\n\t![Preview](doc/singly_circular_linked_list.jpg)\n\t\n4. Tree\n\n\t* [BinaryTree](src/main/java/dsa/tree/bst/BinarySearchTree.java)\n\n\t![Preview](doc/binary_tree.jpg)\n\n\t* [AVLTree](src/main/java/dsa/tree/avl/AVLTree.java)\n\n\t![Preview](doc/avl.gif)\n\n\t* [HuffmanTree](src/main/java/dsa/tree/huffman/HuffmanTree.java)\n\n\t![Preview](doc/huffman.png)\n\n5. Graph\n\n\t* [Vertex](src/main/java/dsa/graph/Graph.java) or [Adjacent Matrix](src/main/java/dsa/graph/GraphMatrix.java)\n\t\n\t![Preview](doc/graph_adjacent_matrix.png)\n\n\t* [Dijkstra](src/main/java/dsa/ai/graph/path/Dijkstra.java)\n\n\t![Preview](doc/dijkstra.gif)\n\n\t* [BellmanFord](src/main/java/dsa/ai/graph/path/BellmanFord.java)\n\n\t![Preview](doc/bellman_ford.gif)\n\n\t* [Mini Max](src/main/java/dsa/ai/graph/minimax/Minimax.java)\n\n\t![Preview](doc/mini-max.gif)\n\n\t* [AStar](src/main/java/dsa/ai/graph/path/astar/AStar.java)\n\n\t![Preview](doc/a-star.gif)\n\n\n## How to Play\n\nClone\n\n```shell\ngit clone https://github.com/humbertodias/java-data-structures-algorithms.git\n```\n\nInside the folder\n\n```shell\ncd java-data-structures-algorithms\n```\n\nRun\n\n```shell\nmvn test\n```\n```\n-------------------------------------------------------\n T E S T S\n-------------------------------------------------------\nRunning dsa.graph.astar.AStarTest\nTests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.102 sec\nRunning dsa.graph.test.BFSTest\nTests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 sec\nRunning dsa.graph.test.DFSTest\nTests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec\nRunning dsa.graph.test.DijkstraTest\nTests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 sec\nRunning dsa.list.test.DoublyLinkedListTest\nTests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.006 sec\nRunning dsa.list.test.SinglyLinkedListTest\nTests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.005 sec\nRunning dsa.queue.test.MaxPQTest\nTests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.015 sec\nRunning dsa.queue.test.MinPQTest\nTests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.008 sec\nRunning dsa.queue.test.QueueArrayTest\nTests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.011 sec\nRunning dsa.stack.test.StackArrayTest\nTests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.004 sec\nRunning dsa.tree.test.BSTTreeTest\nTests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.013 sec\nRunning dsa.tree.test.HuffmanTreeTest\nTests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.016 sec\n\nResults :\n\nTests run: 26, Failures: 0, Errors: 0, Skipped: 0\n\n[INFO] ------------------------------------------------------------------------\n[INFO] BUILD SUCCESS\n[INFO] ------------------------------------------------------------------------\n[INFO] Total time: 2.069 s\n[INFO] Finished at: 2016-06-11T18:38:32-03:00\n[INFO] Final Memory: 9M/245M\n[INFO] ------------------------------------------------------------------------\n```\n\n## References\n\n1. [A* Search Algorithm](https://en.wikipedia.org/wiki/A*_search_algorithm)\n\n2. [Dijkstra](http://www.vogella.com/tutorials/JavaAlgorithmsDijkstra/article.html)\n\n3. [BellmanFord](http://www.geekviewpoint.com/java/graph/bellman_ford_shortest_path)\n\n4. [Huffman](https://rosettacode.org/wiki/Huffman_coding#Java)\n\n5. [List](http://java2novice.com/data-structures-in-java/linked-list/doubly-linked-list/)\n\n6. [Stack](http://eddmann.com/posts/implementing-a-stack-in-java-using-arrays-and-linked-lists/)\n\n7. [Sorting](http://www.sorting-algorithms.com/)\n\n8. [Sorting Steps](https://www.bluffton.edu/~nesterd/java/SortingDemo.html)\n\n9. [Radix Sort](https://en.wikipedia.org/wiki/Radix_sort)\n\n10. [Mini Max](http://www.brian-borowski.com/software/connectfour/)","funding_links":["https://github.com/sponsors/humbertodias"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhumbertodias%2Fjava-data-structures-algorithms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhumbertodias%2Fjava-data-structures-algorithms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhumbertodias%2Fjava-data-structures-algorithms/lists"}