| route-pattern | /:user_id/:repository |
| route-controller | files |
| route-action | disambiguate |
| fetch-nonce | v2:963999f7-5c62-2c58-4481-c01fb0e1f19e |
| current-catalog-service-hash | f3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb |
| request-id | 8500:273B39:19304BA:21348F2:696B8962 |
| html-safe-nonce | da87ab88a2e76df604ffc0d0488717dd9e3d8246a9f03d4d25a373c8d65fd5ee |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4NTAwOjI3M0IzOToxOTMwNEJBOjIxMzQ4RjI6Njk2Qjg5NjIiLCJ2aXNpdG9yX2lkIjoiNzcxOTk0Mzc5Nzc5MjgwMzE3MCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 09e4f3ef0f239e4bb5ccee56333c53fb14c00a087fe6bac9415c0601236e2d49 |
| hovercard-subject-tag | repository:480735543 |
| github-keyboard-shortcuts | repository,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | // |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/crse-code/Algorithms |
| twitter:image | https://opengraph.githubassets.com/a3c4e60d8308ded5f7c2e78fe84a47036076a139721a5e99c5503ff98319d786/crse-code/Algorithms |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/a3c4e60d8308ded5f7c2e78fe84a47036076a139721a5e99c5503ff98319d786/crse-code/Algorithms |
| og:image:alt | A collection of algorithms and data structures. Contribute to crse-code/Algorithms development by creating an account on GitHub. |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | 5f99f7c1d70f01da5b93e5ca90303359738944d8ab470e396496262c66e60b8d |
| turbo-cache-control | no-preview |
| go-import | github.com/crse-code/Algorithms git https://github.com/crse-code/Algorithms.git |
| octolytics-dimension-user_id | 86412589 |
| octolytics-dimension-user_login | crse-code |
| octolytics-dimension-repository_id | 480735543 |
| octolytics-dimension-repository_nwo | crse-code/Algorithms |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | true |
| octolytics-dimension-repository_parent_id | 85371262 |
| octolytics-dimension-repository_parent_nwo | williamfiset/Algorithms |
| octolytics-dimension-repository_network_root_id | 85371262 |
| octolytics-dimension-repository_network_root_nwo | williamfiset/Algorithms |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 82560a55c6b2054555076f46e683151ee28a19bc |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
| Skip to content | https://github.com/crse-code/Algorithms#start-of-content |
|
| https://github.com/ |
|
Sign in
| https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fcrse-code%2FAlgorithms |
| GitHub CopilotWrite better code with AI | https://github.com/features/copilot |
| GitHub SparkBuild and deploy intelligent apps | https://github.com/features/spark |
| GitHub ModelsManage and compare prompts | https://github.com/features/models |
| MCP RegistryNewIntegrate external tools | https://github.com/mcp |
| ActionsAutomate any workflow | https://github.com/features/actions |
| CodespacesInstant dev environments | https://github.com/features/codespaces |
| IssuesPlan and track work | https://github.com/features/issues |
| Code ReviewManage code changes | https://github.com/features/code-review |
| GitHub Advanced SecurityFind and fix vulnerabilities | https://github.com/security/advanced-security |
| Code securitySecure your code as you build | https://github.com/security/advanced-security/code-security |
| Secret protectionStop leaks before they start | https://github.com/security/advanced-security/secret-protection |
| Why GitHub | https://github.com/why-github |
| Documentation | https://docs.github.com |
| Blog | https://github.blog |
| Changelog | https://github.blog/changelog |
| Marketplace | https://github.com/marketplace |
| View all features | https://github.com/features |
| Enterprises | https://github.com/enterprise |
| Small and medium teams | https://github.com/team |
| Startups | https://github.com/enterprise/startups |
| Nonprofits | https://github.com/solutions/industry/nonprofits |
| App Modernization | https://github.com/solutions/use-case/app-modernization |
| DevSecOps | https://github.com/solutions/use-case/devsecops |
| DevOps | https://github.com/solutions/use-case/devops |
| CI/CD | https://github.com/solutions/use-case/ci-cd |
| View all use cases | https://github.com/solutions/use-case |
| Healthcare | https://github.com/solutions/industry/healthcare |
| Financial services | https://github.com/solutions/industry/financial-services |
| Manufacturing | https://github.com/solutions/industry/manufacturing |
| Government | https://github.com/solutions/industry/government |
| View all industries | https://github.com/solutions/industry |
| View all solutions | https://github.com/solutions |
| AI | https://github.com/resources/articles?topic=ai |
| Software Development | https://github.com/resources/articles?topic=software-development |
| DevOps | https://github.com/resources/articles?topic=devops |
| Security | https://github.com/resources/articles?topic=security |
| View all topics | https://github.com/resources/articles |
| Customer stories | https://github.com/customer-stories |
| Events & webinars | https://github.com/resources/events |
| Ebooks & reports | https://github.com/resources/whitepapers |
| Business insights | https://github.com/solutions/executive-insights |
| GitHub Skills | https://skills.github.com |
| Documentation | https://docs.github.com |
| Customer support | https://support.github.com |
| Community forum | https://github.com/orgs/community/discussions |
| Trust center | https://github.com/trust-center |
| Partners | https://github.com/partners |
| GitHub SponsorsFund open source developers | https://github.com/sponsors |
| Security Lab | https://securitylab.github.com |
| Maintainer Community | https://maintainers.github.com |
| Accelerator | https://github.com/accelerator |
| Archive Program | https://archiveprogram.github.com |
| Topics | https://github.com/topics |
| Trending | https://github.com/trending |
| Collections | https://github.com/collections |
| Enterprise platformAI-powered developer platform | https://github.com/enterprise |
| GitHub Advanced SecurityEnterprise-grade security features | https://github.com/security/advanced-security |
| Copilot for BusinessEnterprise-grade AI features | https://github.com/features/copilot/copilot-business |
| Premium SupportEnterprise-grade 24/7 support | https://github.com/premium-support |
| Pricing | https://github.com/pricing |
| Search syntax tips | https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax |
| documentation | https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax |
|
Sign in
| https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fcrse-code%2FAlgorithms |
|
Sign up
| https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E&source=header-repo&source_repo=crse-code%2FAlgorithms |
| Reload | https://github.com/crse-code/Algorithms |
| Reload | https://github.com/crse-code/Algorithms |
| Reload | https://github.com/crse-code/Algorithms |
|
crse-code
| https://github.com/crse-code |
| Algorithms | https://github.com/crse-code/Algorithms |
| williamfiset/Algorithms | https://github.com/williamfiset/Algorithms |
|
Notifications
| https://github.com/login?return_to=%2Fcrse-code%2FAlgorithms |
|
Fork
0
| https://github.com/login?return_to=%2Fcrse-code%2FAlgorithms |
|
Star
0
| https://github.com/login?return_to=%2Fcrse-code%2FAlgorithms |
|
MIT license
| https://github.com/crse-code/Algorithms/blob/master/LICENSE |
|
0
stars
| https://github.com/crse-code/Algorithms/stargazers |
|
4.5k
forks
| https://github.com/crse-code/Algorithms/forks |
|
Branches
| https://github.com/crse-code/Algorithms/branches |
|
Tags
| https://github.com/crse-code/Algorithms/tags |
|
Activity
| https://github.com/crse-code/Algorithms/activity |
|
Star
| https://github.com/login?return_to=%2Fcrse-code%2FAlgorithms |
|
Notifications
| https://github.com/login?return_to=%2Fcrse-code%2FAlgorithms |
|
Code
| https://github.com/crse-code/Algorithms |
|
Pull requests
0
| https://github.com/crse-code/Algorithms/pulls |
|
Actions
| https://github.com/crse-code/Algorithms/actions |
|
Projects
0
| https://github.com/crse-code/Algorithms/projects |
|
Security
Uh oh!
There was an error while loading. Please reload this page.
| https://github.com/crse-code/Algorithms/security |
| Please reload this page | https://github.com/crse-code/Algorithms |
|
Insights
| https://github.com/crse-code/Algorithms/pulse |
|
Code
| https://github.com/crse-code/Algorithms |
|
Pull requests
| https://github.com/crse-code/Algorithms/pulls |
|
Actions
| https://github.com/crse-code/Algorithms/actions |
|
Projects
| https://github.com/crse-code/Algorithms/projects |
|
Security
| https://github.com/crse-code/Algorithms/security |
|
Insights
| https://github.com/crse-code/Algorithms/pulse |
| Branches | https://github.com/crse-code/Algorithms/branches |
| Tags | https://github.com/crse-code/Algorithms/tags |
| https://github.com/crse-code/Algorithms/branches |
| https://github.com/crse-code/Algorithms/tags |
| 1,673 Commits | https://github.com/crse-code/Algorithms/commits/master/ |
| https://github.com/crse-code/Algorithms/commits/master/ |
| .github | https://github.com/crse-code/Algorithms/tree/master/.github |
| .github | https://github.com/crse-code/Algorithms/tree/master/.github |
| build | https://github.com/crse-code/Algorithms/tree/master/build |
| build | https://github.com/crse-code/Algorithms/tree/master/build |
| misc/images | https://github.com/crse-code/Algorithms/tree/master/misc/images |
| misc/images | https://github.com/crse-code/Algorithms/tree/master/misc/images |
| references | https://github.com/crse-code/Algorithms/tree/master/references |
| references | https://github.com/crse-code/Algorithms/tree/master/references |
| slides | https://github.com/crse-code/Algorithms/tree/master/slides |
| slides | https://github.com/crse-code/Algorithms/tree/master/slides |
| src | https://github.com/crse-code/Algorithms/tree/master/src |
| src | https://github.com/crse-code/Algorithms/tree/master/src |
| .gitignore | https://github.com/crse-code/Algorithms/blob/master/.gitignore |
| .gitignore | https://github.com/crse-code/Algorithms/blob/master/.gitignore |
| BUILD.bazel | https://github.com/crse-code/Algorithms/blob/master/BUILD.bazel |
| BUILD.bazel | https://github.com/crse-code/Algorithms/blob/master/BUILD.bazel |
| LICENSE | https://github.com/crse-code/Algorithms/blob/master/LICENSE |
| LICENSE | https://github.com/crse-code/Algorithms/blob/master/LICENSE |
| MODULE.bazel | https://github.com/crse-code/Algorithms/blob/master/MODULE.bazel |
| MODULE.bazel | https://github.com/crse-code/Algorithms/blob/master/MODULE.bazel |
| README.md | https://github.com/crse-code/Algorithms/blob/master/README.md |
| README.md | https://github.com/crse-code/Algorithms/blob/master/README.md |
| README | https://github.com/crse-code/Algorithms |
| MIT license | https://github.com/crse-code/Algorithms |
| https://opensource.org/licenses/MIT |
| https://github.com/williamfiset/Algorithms/actions/workflows/main.yml |
| https://github.com/williamfiset/Algorithms/workflows/README%20URL%20Checker/badge.svg |
| https://www.paypal.com/donate?hosted_button_id=JUP2HZ6JUPB5C |
| https://github.com/crse-code/Algorithms#algorithms--data-structures-project |
| https://github.com/crse-code/Algorithms#running-an-algorithm-implementation |
| Bazel | https://bazel.build/ |
| https://github.com/crse-code/Algorithms#running-with-bazel-recommended |
| Bazel | https://bazel.build/ |
| official installation guide | https://bazel.build/install |
| https://github.com/crse-code/Algorithms#compiling-and-running-with-only-a-jdk |
| https://github.com/crse-code/Algorithms#create-a-classes-folder |
| https://github.com/crse-code/Algorithms#compile-the-algorithm |
| https://github.com/crse-code/Algorithms#run-the-algorithm |
| https://github.com/crse-code/Algorithms#example |
| https://github.com/crse-code/Algorithms#data-structures |
| π₯ | https://www.youtube.com/watch?v=q4fnJZr8ztY |
| Balanced Trees | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/balancedtree |
| AVL Tree (recursive) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/balancedtree/AVLTreeRecursive.java |
| Red Black Tree (recursive) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/balancedtree/RedBlackTree.java |
| π₯ | https://www.youtube.com/watch?v=JfSdGQdAzq8 |
| Binary Search Tree | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/binarysearchtree/BinarySearchTree.java |
| Splay Tree | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/binarysearchtree/SplayTree.java |
| π₯ | https://www.youtube.com/watch?v=PEnFFiQe1pM |
| Dynamic Array | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/dynamicarray |
| Dynamic array (integer only, fast) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/dynamicarray/IntArray.java |
| π₯ | https://www.youtube.com/watch?v=RgITNht_f4Q |
| Fenwick Tree | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/fenwicktree |
| Fenwick Tree (range query, point updates) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/fenwicktree/FenwickTreeRangeQueryPointUpdate.java |
| Fenwick Tree (range update, point query) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/fenwicktree/FenwickTreeRangeUpdatePointQuery.java |
| Fibonacci Heap | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/fibonacciheap |
| π₯ | https://www.youtube.com/watch?v=2E54GqF0H4s |
| Hashtable | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/hashtable |
| Hashtable (double hashing) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/hashtable/HashTableDoubleHashing.java |
| Hashtable (linear probing) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/hashtable/HashTableLinearProbing.java |
| Hashtable (quadratic probing) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/hashtable/HashTableQuadraticProbing.java |
| Hashtable (separate chaining) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/hashtable/HashTableSeparateChaining.java |
| π₯ | https://www.youtube.com/watch?v=-Yn5DU0_-lw |
| Linked List | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/linkedlist/DoublyLinkedList.java |
| π₯ | https://www.youtube.com/watch?v=wptevk0bshY |
| Priority Queue | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/priorityqueue |
| Min Binary Heap | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/priorityqueue/BinaryHeap.java |
| Min Indexed Binary Heap (sorted key-value pairs, similar to hash-table) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/priorityqueue/MinIndexedBinaryHeap.java |
| Min D-Heap | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/priorityqueue/MinDHeap.java |
| π₯ | https://www.youtube.com/watch?v=DT8xZ0Uf8wo |
| Min Indexed D-Heap (sorted key-value pairs, similar to hash-table) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/priorityqueue/MinIndexedDHeap.java |
| π₯ | https://www.youtube.com/watch?v=KxzhEQ-zpDc |
| Queue | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/queue |
| Queue (integer only, fixed size, fast) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/queue/IntQueue.java |
| Queue (linked list, generic) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/queue/Queue.java |
| Segment Tree | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/segmenttree |
| Segment tree (array based, compact) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/segmenttree/CompactSegmentTree.java |
| Segment tree (pointer implementation) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/segmenttree/Node.java |
| π₯ | https://youtu.be/uUatD9AudXo |
| Sparse Table | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/sparsetable/SparseTable.java |
| π₯ | https://www.youtube.com/watch?v=L3ud3rXpIxA |
| Stack | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/stack |
| Stack (integer only, fixed size, fast) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/stack/IntStack.java |
| Stack (linked list, generic) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/stack/ListStack.java |
| Stack (array, generic) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/stack/ArrayStack.java |
| π₯ | https://www.youtube.com/watch?v=zqKlL3ZpTqs |
| Suffix Array | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/suffixarray |
| Suffix Array (O(nΒ²logn) construction) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/suffixarray/SuffixArraySlow.java |
| Suffix Array (O(nlogΒ²(n)) construction) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/suffixarray/SuffixArrayMed.java |
| Suffix Array (O(nlog(n)) construction) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/suffixarray/SuffixArrayFast.java |
| Trie | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/trie/Trie.java |
| π₯ | https://www.youtube.com/watch?v=ibjEGG7ylHk |
| Union Find | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/datastructures/unionfind/UnionFind.java |
| https://github.com/crse-code/Algorithms#dynamic-programming |
| https://github.com/crse-code/Algorithms#dynamic-programming-classics |
| Coin change problem | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/dp/CoinChange.java |
| Edit distance (iterative) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/dp/EditDistanceIterative.java |
| Edit distance (recursive) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/dp/EditDistanceRecursive.java |
| π₯ | https://www.youtube.com/watch?v=cJ21moQpofY |
| Knapsack 0/1 | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/dp/Knapsack_01.java |
| Knapsack unbounded (0/β) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/dp/KnapsackUnbounded.java |
| Maximum contiguous subarray | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/dp/MaximumSubarray.java |
| Longest Common Subsequence (LCS) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/dp/LongestCommonSubsequence.java |
| Longest Increasing Subsequence (LIS) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/dp/LongestIncreasingSubsequence.java |
| Longest Palindrome Subsequence (LPS) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/dp/LongestPalindromeSubsequence.java |
| π₯ | https://www.youtube.com/watch?v=cY4HiiFHO1o |
| Traveling Salesman Problem (dynamic programming, iterative) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/TspDynamicProgrammingIterative.java |
| Traveling Salesman Problem (dynamic programming, recursive) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/TspDynamicProgrammingRecursive.java |
| Minimum Weight Perfect Matching (iterative, complete graph) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/dp/MinimumWeightPerfectMatching.java |
| https://github.com/crse-code/Algorithms#dynamic-programming-problem-examples |
| https://github.com/crse-code/Algorithms#adhoc |
| π₯ | https://www.youtube.com/watch?v=_tur2nPkIKo |
| Magic Cows | https://github.com/williamfiset/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/dp/examples/magicalcows/MagicalCows.java |
| π₯ | https://youtu.be/oQQO_n57SB0 |
| Narrow Art Gallery | https://github.com/williamfiset/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/dp/examples/narrowartgallery/NarrowArtGalleryRecursive.java |
| https://github.com/crse-code/Algorithms#tiling-problems |
| π₯ | https://youtu.be/yn2jnmlepY8 |
| Tiling Dominoes | https://github.com/williamfiset/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/dp/examples/tilingdominoes/TilingDominoes.java |
| π₯ | https://www.youtube.com/watch?v=CecjOo4Zo-g |
| Tiling Dominoes and Trominoes | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/dp/examples/domino-and-tromino-tiling |
| π₯ | https://youtu.be/pPgBZqY_Xh0 |
| Mountain Scenes | https://github.com/williamfiset/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/dp/examples/scenes/Scenes.java |
| https://github.com/crse-code/Algorithms#geometry |
| Angle between 2D vectors | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/geometry/AngleBetweenVectors2D.java |
| Angle between 3D vectors | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/geometry/AngleBetweenVectors3D.java |
| Circle-circle intersection point(s) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/geometry/CircleCircleIntersectionPoints.js |
| Circle-line intersection point(s) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/geometry/LineCircleIntersection.js |
| Circle-line segment intersection point(s) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/geometry/LineSegmentCircleIntersection.js |
| Circle-point tangent line(s) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/geometry/PointCircleTangent.java |
| Closest pair of points (line sweeping algorithm) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/geometry/ClosestPairOfPoints.java |
| Collinear points test (are three 2D points on the same line) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/geometry/CollinearPoints.java |
| Convex hull (Graham Scan algorithm) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/geometry/ConvexHullGrahamScan.java |
| Convex hull (Monotone chain algorithm) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/geometry/ConvexHullMonotoneChainsAlgorithm.java |
| Convex polygon area | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/geometry/ConvexPolygonArea.java |
| Convex polygon cut | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/geometry/ConvexPolygonCutWithLineSegment.java |
| Convex polygon contains points | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/geometry/ConvexPolygonContainsPoint.java |
| Coplanar points test (are four 3D points on the same plane) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/geometry/CoplanarPoints.java |
| Line class (handy infinite line class) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/geometry/Line.java |
| Line-circle intersection point(s) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/geometry/LineCircleIntersection.js |
| Line segment-circle intersection point(s) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/geometry/LineSegmentCircleIntersection.js |
| Line segment to general form (ax + by = c) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/geometry/LineSegmentToGeneralForm.java |
| Line segment-line segment intersection | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/geometry/LineSegmentLineSegmentIntersection.java |
| Longitude-Latitude geographic distance | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/geometry/LongitudeLatitudeGeographicDistance.java |
| Point is inside triangle check | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/geometry/PointInsideTriangle.java |
| Point rotation about point | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/geometry/PointRotation.java |
| Triangle area algorithms | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/geometry/TriangleArea.java |
| [UNTESTED] Circle-circle intersection area | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/geometry/CircleCircleIntersectionArea.java |
| [UNTESTED] Circular segment area | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/geometry/CircularSegmentArea.java |
| https://github.com/crse-code/Algorithms#graph-theory |
| https://github.com/crse-code/Algorithms#tree-algorithms |
| π₯ | https://www.youtube.com/watch?v=2FFq2_je7Lg |
| Rooting an undirected tree | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/treealgorithms/RootingTree.java |
| π₯ | https://www.youtube.com/watch?v=OCKvEMF0Xac |
| Identifying isomorphic trees | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/treealgorithms/TreeIsomorphism.java |
| π₯ | https://www.youtube.com/watch?v=nzF_9bjDzdc |
| Tree center(s) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/treealgorithms/TreeCenter.java |
| Tree diameter | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/treealgorithms/TreeDiameter.java |
| π₯ | https://www.youtube.com/watch?v=sD1IoalFomA |
| Lowest Common Ancestor (LCA, Euler tour) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/treealgorithms/LowestCommonAncestorEulerTour.java |
| https://github.com/crse-code/Algorithms#network-flow |
| Bipartite graph verification (adjacency list) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/networkflow/BipartiteGraphCheckAdjacencyList.java |
| π₯ | https://www.youtube.com/watch?v=LdOnanfc5TM |
| Max flow & Min cut (Ford-Fulkerson with DFS, adjacency list) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/networkflow/FordFulkersonDfsSolverAdjacencyList.java |
| Max flow & Min cut (Ford-Fulkerson with DFS, adjacency matrix) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/networkflow/FordFulkersonDFSAdjacencyMatrix.java |
| π₯ | https://www.youtube.com/watch?v=RppuJYwlcI8 |
| Max flow & Min cut (Edmonds-Karp, adjacency list) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/networkflow/EdmondsKarpAdjacencyList.java |
| π₯ | https://youtu.be/1ewLrXUz4kk |
| Max flow & Min cut (Capacity scaling, adjacency list) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/networkflow/CapacityScalingSolverAdjacencyList.java |
| π₯ | https://youtu.be/M6cm8UeeziI |
| Max flow & Min cut (Dinic's, adjacency list) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/networkflow/Dinics.java |
| Maximum Cardinality Bipartite Matching (augmenting path algorithm, adjacency list) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/networkflow/MaximumCardinalityBipartiteMatchingAugmentingPathAdjacencyList.java |
| Min Cost Max Flow (Bellman-Ford, adjacency list) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/networkflow/MinCostMaxFlowWithBellmanFord.java |
| Min Cost Max Flow (Johnson's algorithm, adjacency list) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/networkflow/MinCostMaxFlowJohnsons.java |
| https://github.com/crse-code/Algorithms#main-graph-theory-algorithms |
| Articulation points/cut vertices (adjacency list) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/ArticulationPointsAdjacencyList.java |
| Bellman-Ford (edge list, negative cycles, fast & optimized) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/BellmanFordEdgeList.java |
| π₯ | https://www.youtube.com/watch?v=lyw4FaxrwHg |
| Bellman-Ford (adjacency list, negative cycles) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/BellmanFordAdjacencyList.java |
| Bellman-Ford (adjacency matrix, negative cycles) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/BellmanFordAdjacencyMatrix.java |
| π₯ | https://www.youtube.com/watch?v=oDqjPvD54Ss |
| Breadth first search (adjacency list) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/BreadthFirstSearchAdjacencyListIterative.java |
| Breadth first search (adjacency list, fast queue) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/BreadthFirstSearchAdjacencyListIterativeFastQueue.java |
| Bridges/cut edges (adjacency list) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/BridgesAdjacencyList.java |
| Boruvkas (adjacency list, min spanning tree algorithm) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/Boruvkas.java |
| Find connected components (adjacency list, union find) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/ConnectedComponentsAdjacencyList.java |
| Find connected components (adjacency list, DFS) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/ConnectedComponentsDfsSolverAdjacencyList.java |
| Depth first search (adjacency list, iterative) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/DepthFirstSearchAdjacencyListIterative.java |
| Depth first search (adjacency list, iterative, fast stack) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/DepthFirstSearchAdjacencyListIterativeFastStack.java |
| π₯ | https://www.youtube.com/watch?v=7fujbpJ0LB4 |
| Depth first search (adjacency list, recursive) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/DepthFirstSearchAdjacencyListRecursive.java |
| π₯ | https://www.youtube.com/watch?v=pSqmAO-m7Lk |
| Dijkstra's shortest path (adjacency list, lazy implementation) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/DijkstrasShortestPathAdjacencyList.java |
| π₯ | https://www.youtube.com/watch?v=pSqmAO-m7Lk |
| Dijkstra's shortest path (adjacency list, eager implementation + D-ary heap) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/DijkstrasShortestPathAdjacencyListWithDHeap.java |
| π₯ | https://www.youtube.com/watch?v=8MpoO2zA2l4 |
| Eulerian Path (directed edges) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/EulerianPathDirectedEdgesAdjacencyList.java |
| π₯ | https://www.youtube.com/watch?v=4NQ3HnhyNfQ |
| Floyd Warshall algorithm (adjacency matrix, negative cycle check) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/FloydWarshallSolver.java |
| Graph diameter (adjacency list) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/GraphDiameter.java |
| π₯ | https://www.youtube.com/watch?v=cIBFEhD77b4 |
| Kahn's algorithm (topological sort, adjacency list) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/Kahns.java |
| Kruskal's min spanning tree algorithm (edge list, union find) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/KruskalsEdgeList.java |
| π₯ | https://www.youtube.com/watch?v=JZBQLXgSGfs |
| Kruskal's min spanning tree algorithm (edge list, union find, lazy sorting) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/KruskalsEdgeListPartialSortSolver.java |
| Kosaraju's strongly connected components algorithm (adjacency list) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/Kosaraju.java |
| π₯ | https://www.youtube.com/watch?v=jsmMtJpPnhU |
| Prim's min spanning tree algorithm (lazy version, adjacency list) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/LazyPrimsAdjacencyList.java |
| Prim's min spanning tree algorithm (lazy version, adjacency matrix) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/LazyPrimsAdjacencyMatrix.java |
| π₯ | https://www.youtube.com/watch?v=xq3ABa-px_g |
| Prim's min spanning tree algorithm (eager version, adjacency list) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/EagerPrimsAdjacencyList.java |
| Steiner tree (minimum spanning tree generalization) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/SteinerTree.java |
| π₯ | https://www.youtube.com/watch?v=wUgWX0nc4NY |
| Tarjan's strongly connected components algorithm (adjacency list) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/TarjanSccSolverAdjacencyList.java |
| π₯ | https://www.youtube.com/watch?v=eL-KzMXSXXI |
| Topological sort (acyclic graph, adjacency list) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/TopologicalSortAdjacencyList.java |
| Topological sort (acyclic graph, adjacency matrix) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/TopologicalSortAdjacencyMatrix.java |
| Traveling Salesman Problem (brute force) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/TspBruteForce.java |
| π₯ | https://www.youtube.com/watch?v=cY4HiiFHO1o |
| Traveling Salesman Problem (dynamic programming, iterative) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/TspDynamicProgrammingIterative.java |
| Traveling Salesman Problem (dynamic programming, recursive) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/graphtheory/TspDynamicProgrammingRecursive.java |
| https://github.com/crse-code/Algorithms#linear-algebra |
| Freivald's algorithm (matrix multiplication verification) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/linearalgebra/FreivaldsAlgorithm.java |
| Gaussian elimination (solve system of linear equations) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/linearalgebra/GaussianElimination.java |
| Gaussian elimination (modular version, prime finite field) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/linearalgebra/ModularLinearAlgebra.java |
| Linear recurrence solver (finds nth term in a recurrence relation) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/linearalgebra/LinearRecurrenceSolver.java |
| Matrix determinant (Laplace/cofactor expansion) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/linearalgebra/MatrixDeterminantLaplaceExpansion.java |
| Matrix inverse | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/linearalgebra/MatrixInverse.java |
| Matrix multiplication | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/linearalgebra/MatrixMultiplication.java |
| Matrix power | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/linearalgebra/MatrixPower.java |
| Square matrix rotation | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/linearalgebra/RotateSquareMatrixInplace.java |
| https://github.com/crse-code/Algorithms#mathematics |
| [UNTESTED] Chinese remainder theorem | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/math/ChineseRemainderTheorem.java |
| Prime number sieve (sieve of Eratosthenes) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/math/SieveOfEratosthenes.java |
| Prime number sieve (sieve of Eratosthenes, compressed) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/math/CompressedPrimeSieve.java |
| Totient function (phi function, relatively prime number count) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/math/EulerTotientFunction.java |
| Totient function using sieve (phi function, relatively prime number count) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/math/EulerTotientFunctionWithSieve.java |
| Extended euclidean algorithm | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/math/ExtendedEuclideanAlgorithm.java |
| Greatest Common Divisor (GCD) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/math/GCD.java |
| Fast Fourier transform (quick polynomial multiplication) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/math/FastFourierTransform.java |
| Fast Fourier transform (quick polynomial multiplication, complex numbers) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/math/FastFourierTransformComplexNumbers.java |
| Primality check | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/math/IsPrime.java |
| Primality check (Rabin-Miller) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/math/RabinMillerPrimalityTest.py |
| Least Common Multiple (LCM) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/math/LCM.java |
| Modular inverse | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/math/ModularInverse.java |
| Prime factorization (pollard rho) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/math/PrimeFactorization.java |
| Relatively prime check (coprimality check) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/math/RelativelyPrime.java |
| https://github.com/crse-code/Algorithms#other |
| Bit manipulations | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/other/BitManipulations.java |
| List permutations | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/other/Permutations.java |
| π₯ | https://www.youtube.com/watch?v=RnlHPR0lyOE |
| Power set (set of all subsets) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/other/PowerSet.java |
| Set combinations | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/other/Combinations.java |
| Set combinations with repetition | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/other/CombinationsWithRepetition.java |
| Sliding Window Minimum/Maximum | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/other/SlidingWindowMaximum.java |
| Square Root Decomposition | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/other/SquareRootDecomposition.java |
| Unique set combinations | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/other/UniqueCombinations.java |
| Lazy Range Adder | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/other/LazyRangeAdder.java |
| https://github.com/crse-code/Algorithms#search-algorithms |
| Binary search (real numbers) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/search/BinarySearch.java |
| Interpolation search (discrete discrete) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/search/InterpolationSearch.java |
| Ternary search (real numbers) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/search/TernarySearch.java |
| Ternary search (discrete numbers) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/search/TernarySearchDiscrete.java |
| https://github.com/crse-code/Algorithms#sorting-algorithms |
| Bubble sort | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/sorting/BubbleSort.java |
| Bucket sort | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/sorting/BucketSort.java |
| Counting sort | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/sorting/CountingSort.java |
| Heapsort | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/sorting/Heapsort.java |
| Insertion sort | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/sorting/InsertionSort.java |
| π₯ | https://www.youtube.com/watch?v=-3u1C1URNZY |
| Mergesort | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/sorting/MergeSort.java |
| Quicksort (in-place, Hoare partitioning) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/sorting/QuickSort.java |
| Quicksort3 (Dutch National Flag algorithm) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/sorting/QuickSort3.java |
| Selection sort | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/sorting/SelectionSort.java |
| Radix sort | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/sorting/RadixSort.java |
| https://github.com/crse-code/Algorithms#string-algorithms |
| Booth's algorithm (finds lexicographically smallest string rotation) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/strings/BoothsAlgorithm.java |
| Knuth-Morris-Pratt algorithm (finds pattern matches in text) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/strings/KMP.java |
| Longest Common Prefix (LCP) array | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/strings/LongestCommonPrefixArray.java |
| π₯ | https://www.youtube.com/watch?v=Ic80xQFWevc |
| Longest Common Substring (LCS) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/strings/LongestCommonSubstring.java |
| π₯ | https://www.youtube.com/watch?v=OptoHwC3D-Y |
| Longest Repeated Substring (LRS) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/strings/LongestRepeatedSubstring.java |
| Manacher's algorithm (finds all palindromes in text) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/strings/ManachersAlgorithm.java |
| Rabin-Karp algorithm (finds pattern match positions in text) | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/strings/RabinKarp.java |
| Substring verification with suffix array | https://github.com/crse-code/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/strings/SubstringVerificationSuffixArray.java |
| https://github.com/crse-code/Algorithms#license |
| MIT license | https://opensource.org/licenses/MIT |
| https://github.com/crse-code/Algorithms#donate |
| https://www.paypal.com/donate?hosted_button_id=JUP2HZ6JUPB5C |
|
Readme
| https://github.com/crse-code/Algorithms#readme-ov-file |
|
MIT license
| https://github.com/crse-code/Algorithms#MIT-1-ov-file |
| Please reload this page | https://github.com/crse-code/Algorithms |
|
Activity | https://github.com/crse-code/Algorithms/activity |
|
Custom properties | https://github.com/crse-code/Algorithms/custom-properties |
|
0
stars | https://github.com/crse-code/Algorithms/stargazers |
|
0
watching | https://github.com/crse-code/Algorithms/watchers |
|
0
forks | https://github.com/crse-code/Algorithms/forks |
|
Report repository
| https://github.com/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Fcrse-code%2FAlgorithms&report=crse-code+%28user%29 |
| Releases | https://github.com/crse-code/Algorithms/releases |
| Packages
0 | https://github.com/orgs/crse-code/packages?repo_name=Algorithms |
|
| https://github.com |
| Terms | https://docs.github.com/site-policy/github-terms/github-terms-of-service |
| Privacy | https://docs.github.com/site-policy/privacy-policies/github-privacy-statement |
| Security | https://github.com/security |
| Status | https://www.githubstatus.com/ |
| Community | https://github.community/ |
| Docs | https://docs.github.com/ |
| Contact | https://support.github.com?tags=dotcom-footer |