Commit Graph

1039 Commits

Author SHA1 Message Date
Piotr Idzik
6fdf2db298 style: resolve some of the UTAO_JUNIT_ASSERTION_ODDITIES_USE_ASSERT_EQUALS warnings (#7240) 2026-01-25 12:44:41 +01:00
Piotr Idzik
0b0cefe9f9 style: include UTAO_JUNIT_ASSERTION_ODDITIES_ACTUAL_CONSTANT (#7239) 2026-01-24 14:16:48 +01:00
Piotr Idzik
1a7f8fe79e style: include UTAO_JUNIT_ASSERTION_ODDITIES_IMPOSSIBLE_NULL (#7238) 2026-01-23 09:39:22 +01:00
Piotr Idzik
0f9139dc42 style: include UTAO_JUNIT_ASSERTION_ODDITIES_USE_ASSERT_NOT_EQUALS (#7229) 2026-01-22 09:24:45 +01:00
Piotr Idzik
0e8291e669 style: include UTAO_JUNIT_ASSERTION_ODDITIES_USE_ASSERT_NOT_NULL (#7226) 2026-01-21 10:55:09 +01:00
Piotr Idzik
1b014a2ea4 style: include UTAO_JUNIT_ASSERTION_ODDITIES_USE_ASSERT_NULL (#7225) 2026-01-20 22:02:10 +01:00
Gopesh Pandey
7339b9dfe9 Add distance between two points algorithm (#7218)
* Add distance between two points algorithm

* Create DistanceBetweenTwoPointsTest.java

* DistanceBetweenTwoPoints.java

* Fix test file package and project structure

* Delete src/test/java/com/thealgorithms/DistanceBetweenTwoPointsTest.java

* Apply clang-format compliant formatting

* Apply clang-format

---------

Co-authored-by: a <19151554+alxkm@users.noreply.github.com>
2026-01-19 21:36:03 +01:00
Chahat Sandhu
109ed2e497 feat: Add Prefix Sum category with 1D and 2D implementations (#7220)
Co-authored-by: Deniz Altunkapan <deniz.altunkapan@outlook.com>
2026-01-19 10:15:59 +00:00
Chahat Sandhu
1b9373e71a feat: add Bell Numbers algorithm using Aitken's Array (#7219)
* feat: added Bell Numbers algorithm using Aitken's Array

* style: applied clang-format fixes
2026-01-19 09:59:58 +00:00
Ahmed Allam
fd0bcb79e6 Add Middle of Linked List (Slow/Fast Pointers) (#7212)
* feat: implement Smooth Sort algorithm with detailed JavaDoc and test class

* style: format LEONARDO array for improved readability with clang-format

* feat: add MiddleOfLinkedList class and corresponding test cases

* docs: update documentation for MiddleOfLinkedList class

* test: refactor MiddleOfLinkedListTest to improve readability and assertions

* test: refactor MiddleOfLinkedListTest for improved null safety and readability

---------

Co-authored-by: Ahmed Allam <60698204+AllamF5J@users.noreply.github.com>
2026-01-16 12:33:29 +01:00
Ahmed Allam
66f76eb3d9 Add RotatedBinarySearch (search in rotated sorted array) (#7202)
* feat: implement Smooth Sort algorithm with detailed JavaDoc and test class

* style: format LEONARDO array for improved readability with clang-format

* feat(sorts): add TournamentSort (winner-tree)

* test: add unit test for null array handling in TournamentSort

* feat(search): add rotated binary search

* test: add unit test for handling middle element in right sorted half of rotated array

---------

Co-authored-by: Ahmed Allam <60698204+AllamF5J@users.noreply.github.com>
2026-01-14 10:59:25 +01:00
Ahmed Allam
7148661e44 Feat/tournament sort (#7201)
* feat: implement Smooth Sort algorithm with detailed JavaDoc and test class

* style: format LEONARDO array for improved readability with clang-format

* feat(sorts): add TournamentSort (winner-tree)

* test: add unit test for null array handling in TournamentSort

---------

Co-authored-by: Ahmed Allam <60698204+AllamF5J@users.noreply.github.com>
Co-authored-by: Deniz Altunkapan <deniz.altunkapan@outlook.com>
Co-authored-by: Oleksandr Klymenko <19151554+alxkm@users.noreply.github.com>
2026-01-13 23:04:14 +01:00
Tarunj Gupta
1644db2a34 Add Count Nice Subarrays sliding using window algorithm (#7206)
* Add Count Nice Subarrays sliding window algorithm

* Add detailed comments and reference to CountNiceSubarrays

* Fix clang-format issues in CountNiceSubarrays

* Added extra edge cases

* changes made
2026-01-10 16:32:19 +01:00
Ahmed Allam
fe6066b332 Add SmoothSort (Dijkstra’s adaptive in-place heapsort variant) (#7200)
* feat: implement Smooth Sort algorithm with detailed JavaDoc and test class

* style: format LEONARDO array for improved readability with clang-format

---------

Co-authored-by: Ahmed Allam <60698204+AllamF5J@users.noreply.github.com>
2026-01-09 12:36:46 +01:00
Daniel Sánchez Núñez
d382e656f2 Adding method to check wether a matrix is stochastic (#7184)
* Add StochasticMatrix utility class

This class provides methods to check if a matrix is row-stochastic or column-stochastic, ensuring all elements are non-negative and the sums of rows or columns equal 1.

* Change package from maths to matrix

Updated package declaration for StochasticMatrix class.

* Change package declaration in StochasticMatrixTest

* Delete src/test/java/com/thealgorithms/StochasticMatrixTest.java

* Refactor matrix initialization for test cases

* Fix formatting of matrix initialization in tests

* Remove unnecessary newline in StochasticMatrix

* Add import statement for JUnit in StochasticMatrixTest

* Add additional assertions to StochasticMatrixTest

* Clean up import statements in StochasticMatrixTest

Removed unused import statements for cleaner code.

* Reorder import statements in StochasticMatrixTest

* Remove unused import assertThrows from StochasticMatrixTest

Removed unused import for assertThrows.
2025-12-28 10:53:12 +01:00
NYAMATHABAD KOUSHIK SAI
51335cc18a Add Immutable HashMap implementation (#7183)
* Add immutable HashMap implementation

* Add immutable HashMap implementation

* Applied clang-format

---------

Co-authored-by: Koushik Sai <nyamathabadkoushik@gmail.com>
2025-12-27 16:55:23 +00:00
NYAMATHABAD KOUSHIK SAI
2707da25e3 Add recursive factorial implementation with tests (#7178)
* Add recursive factorial implementation with tests

* [STYLE] Apply clang-format

* Move recursive factorial to recursion package and remove duplicate

* Move recursive factorial to recursion package and remove duplicate

* Apply clang-format to factorial recursion tests

* Apply clang-format to factorial recursion tests

---------

Co-authored-by: Koushik Sai <nyamathabadkoushik@gmail.com>
Co-authored-by: Deniz Altunkapan <deniz.altunkapan@outlook.com>
2025-12-22 20:15:50 +00:00
Gopal Gupta
bb334881e9 Implement LengthOfLastWord algorithm and add JUnit tests (#7057)
* Implement LengthOfLastWord algorithm in strings package

* Add JUnit tests for LengthOfLastWord algorithm

* style: fix import order and spacing for clang-format
2025-12-20 13:42:34 +00:00
Saniya Mane
7d51c7f320 Add additional edge cases to GCD unit tests (#7174)
* Add additional edge cases to GCD unit tests

* Rename GCD test methods and add descriptive names

* Fix formatting in GCD tests

---------

Co-authored-by: Deniz Altunkapan <deniz.altunkapan@outlook.com>
2025-12-18 07:55:03 +00:00
Rajuri Likhitha
2911a7b52c ExtendedEuclideanAlgorithm (#7172)
* commit1

* Fix clang-format spacing in array declarations
2025-12-17 22:14:12 +01:00
NYAMATHABAD KOUSHIK SAI
4f293b33e5 [FEAT] Add Thin Lens formula for ray optics (#7170)
* [FEAT] Add Thin Lens formula for ray optics

* [CI] Re-run clang-format checks

* [CI] Re-run checks after rebase

* [STYLE] Apply clang-format to ThinLensTest

---------

Co-authored-by: Koushik Sai <nyamathabadkoushik@gmail.com>
2025-12-17 16:48:00 +01:00
Taranjeet Singh Kalsi
d9f2ac8340 Added program to check Lucky number (#6962)
added program for lucky number
2025-12-14 10:29:14 +00:00
Muhammad Junaid Khalid
aa91451203 feat: Binary Tree to String algorithm added (Leetcode 606) (#6727)
* feat: BinaryTreeToString.java Added with tests

* fix: javadoc added to BinaryTreeToString

* fix: link to leetcode added
2025-12-14 10:14:00 +00:00
utkarsh patel
bccaf970ba Add Z-Algorithm for Linear-Time String Pattern Matching (#7124)
* Add Z-Algorithm (string pattern matching) with tests

* Add Z-Algorithm (string pattern matching) with tests

* Add Z-Algorithm (string pattern matching) with tests

* Fix checkstyle errors for ZAlgorithm

* Fix: clang-format and checkstyle compliance for ZAlgorithm
2025-12-14 10:08:18 +00:00
Lucas Horn
4f40206684 Add unit tests for graph algorithms (#7133) (#7156)
* Add unit tests for graph algorithms (BFS, DFS, Dijkstra, Bellman-Ford) #7133

- Created BellmanFordTest.java with 10 test methods covering various graph scenarios

- Created ConnectedComponentTest.java with 15 test methods for DFS-based component counting

- Enhanced MatrixGraphsTest.java with additional BFS/DFS test cases

- Enhanced DijkstraAlgorithmTest.java with comprehensive shortest path tests

Fixes #7133

* fix: format files using clang

* fix: removing my changes on pull_request_template

---------

Co-authored-by: prashantdubeypng <vinoddubey6059@gmail.com>
2025-12-10 09:04:32 +00:00
Daniel Sánchez Núñez
316def4ea6 Add Snell's Law refraction algorithm (#7150)
* Add Snell's Law implementation for refraction angle

* Add tests for Snell's Law calculations

* Update documentation with reference link to Snell's Law

Added a reference link to Snell's Law in the documentation.

* Prevent instantiation of SnellLaw class

Make SnellLaw class non-instantiable by adding a private constructor.

* Rename SnellsLawTest to SnellLawTest

* Refactor SnellLawTest for clarity and accuracy

* Rename SnellsLaw.java to SnellLaw.java

* Refactor SnellLawTest with additional assertions

* Refactor SnellLaw class constructor and error handling

Refactor SnellLaw constructor and error message formatting.

* Fix missing newline at end of SnellLawTest.java

Ensure that the SnellLawTest class has a newline at the end of the file.

* Simplify assertions in SnellLawTest

* Simplify exception throwing for total internal reflection
2025-12-07 12:18:55 +01:00
duvvuvenkataramana
8d2cdb27db feat: implement One-Time Pad cipher (#6941) (#7096)
* feat: implement One-Time Pad cipher (#6941)

* style: format OneTimePadCipher with clang-format
2025-12-01 20:17:32 +00:00
Shewale Gopal Sanjay
14c0b0844e Added threaded binary tree (#6995)
* Add One-Time Pad Cipher implementation in Java

* Add One-Time Pad Cipher implementation (fixed)

* Add ThreadedBinaryTree with in-order traversal and tests

* feat: add threaded binary tree implementation and tests

* fix: remove redundant null check for SpotBugs compliance
2025-12-01 20:13:14 +00:00
Taranjeet Singh Kalsi
ac6fef19dc Added program to check either number is Evil or Odious (#6958)
added program for evil number
2025-11-30 22:37:41 +00:00
Taranjeet Singh Kalsi
a9ba87c4b6 Added program to check Abundant number (#6961)
added program for abundant number
2025-11-28 08:51:28 +00:00
Sameer Prajapati
4c5525a2e0 feat: Added Gomory–Hu Tree (all-pairs min-cuts via n1 max-flows) (#6818)
* Add Gomory–Hu Tree (all-pairs min-cuts via n1 max-flows)

* Stabilize Monte Carlo integration with antithetic variates to reduce variance

* Fix Checkstyle in GomoryHuTreeTest: remove inner assignments, add braces, split declarations

* SpotBugs: use RandomGenerator interface in test helper

---------

Co-authored-by: Deniz Altunkapan <deniz.altunkapan@outlook.com>
2025-11-28 08:47:53 +00:00
Gokul45-45
d1ea306920 feat: add Valid Parentheses algorithm using Stack (#7117)
* feat: add Valid Parentheses algorithm using Stack

* fix: add missing ValidParentheses.java implementation

* fix: remove trailing spaces and add newline at EOF

* fix: remove misplaced ValidParentheses.java from root
2025-11-27 11:29:48 +00:00
KANAKALA SAI KIRAN
fa8ea8e614 Feature/centroid decomposition (#7086)
* feat: Add Centroid Decomposition for trees (#7054)

- Implement CentroidDecomposition with O(N log N) construction
- Add CentroidTree class with parent tracking and query methods
- Include buildFromEdges helper for easy tree construction
- Add comprehensive test suite with 20+ test cases
- Cover edge cases, validation, and various tree structures

Closes #7054

* feat: Add Centroid Decomposition for trees (#7054)

- Implement CentroidDecomposition with O(N log N) construction
- Add CentroidTree class with parent tracking and query methods
- Include buildFromEdges helper for easy tree construction
- Add comprehensive test suite with 20+ test cases
- Cover edge cases, validation, and various tree structures

Closes #7054

* fix: Remove trailing whitespace from CentroidDecompositionTest

* fix: Remove trailing whitespace and add newlines at end of files

* fix: Format code to comply with clang-format and checkstyle requirements

* style: Fix lambda formatting in test assertions

- Change single-line lambdas to multi-line format
- Align with repository code style guidelines

* style: Apply clang-format to match repository style guide

- Format code according to .clang-format configuration
- Use single-line lambdas as allowed by AllowShortLambdasOnASingleLine: All
- Apply 4-space indentation
- Ensure proper line endings
2025-11-22 09:44:34 +00:00
shreeya-g10
3519e396af backtracking: add unique permutation algorithm with test cases (#7078)
* Add unique permutation algorithm and test cases

* Fix: add braces for checkstyle

* Apply clang-format
2025-11-19 18:20:46 +02:00
GOPISETTI NAVADEEP
9f2b675f3e feat: add Sudoku Solver using Backtracking (#7073)
* feat: add Sudoku Solver using Backtracking (issue #6929)

* refactor: remove old Sudoku class from puzzlesandgames package

* Remove old Sudoku implementation and its test class
2025-11-17 09:54:20 +01:00
SeungHyeok Yun
cff5d3662e feat: add IndexedPriorityQueue implementation and tests (#7062)
* feat: add IndexedPriorityQueue implementation and tests

* mod : clang-format

* Fix Checkstyle naming for IndexedPriorityQueue tests

* Align IndexedPriorityQueue tests with Checkstyle and clang-format
2025-11-16 19:49:30 +01:00
GOPISETTI NAVADEEP
c6880c195d feat: add Sieve of Eratosthenes algorithm (#7071)
* feat: add Sieve of Eratosthenes algorithm

- Implement Sieve of Eratosthenes for finding prime numbers up to n
- Add comprehensive unit tests with edge cases
- Include JavaDoc documentation
- Time complexity: O(n log log n)
- Space complexity: O(n)

Resolves #6939

* fix: remove trailing spaces

* fix: apply clang-format
2025-11-16 12:00:21 +00:00
GOPISETTI NAVADEEP
93811614b8 feat: add Count Set Bits algorithm (#7072)
* feat: add Count Set Bits algorithm (issue #6931)

* fix: correct CountSetBits algorithm logic

* style: apply clang-format to CountSetBits files

* fix: correct test expectations for CountSetBits

* fix: correct test expectations for CountSetBits
2025-11-16 12:54:43 +01:00
Krishna
3979e824b7 Add Power of Four Check using bit manipulation (#7065)
* Add Power of Four Check using bit manipulation

- Implements isPowerOfFour method using bit manipulation
- Checks if number is power of two and has bit at even position
- Includes comprehensive unit tests
- Fixes #6940

* Fix code formatting in PowerOfFourTest

* Move PowerOfFour classes to maths package

* Fix package declaration in PowerOfFourTest

* Fix code formatting in PowerOfFourTest

* Remove redundant import from PowerOfFourTest

* Remove unrelated file
2025-11-15 18:36:01 +01:00
Taranjeet Singh Kalsi
98eecb9f16 Added program to check Smith number (#6955)
added smith number program
2025-11-15 09:32:06 +00:00
Krishna
8a339ef2e2 Add Temperature Conversion Utility (#7066)
- Implements conversions between Celsius, Fahrenheit, and Kelvin
- Includes all 6 conversion methods
- Adds comprehensive unit tests with edge cases
- Fixes #6936
2025-11-15 10:22:36 +01:00
Priyanshu Kumar Singh
4951fb9ce2 [FEAT] Add Kinematics (SUVAT) equations (#7053)
[FEAT] Add SUVAT equation for motion

Co-authored-by: Priyanshu1303d <priyanshu130d@gmail.com>
2025-11-06 18:41:39 +01:00
Arzoo1701
d126fd59f7 Add Trapping Rainwater problem implementation (Two Pointer Approach) (#6990)
* Add Trapping Rainwater problem implementation (Two Pointer Approach)

* Add Wikipedia reference link for Trapping Rainwater problem

* fix: format TrappingRainwater.java for CI check

* fix: add package and resolve checkstyle errors for TrappingRainwater.java

* fix: declare TrappingRainwater as final to pass Checkstyle

* Add test cases for TrappingRainwater algorithm

* Add test cases for TrappingRainwater algorithm

* Move TrappingRainwater algorithm to stacks package

* Fix: Move TrappingRainwater to stacks and normalize newline in JugglerSequence

* Fix: Normalize newline in JugglerSequence to ensure test consistency

* Fix: Normalize newline in JugglerSequence and remove return statement

* Add JaCoCo plugin for code coverage reporting

* Revert pom.xml to original version from master

* Fix: Revert the pom.xml file

---------

Co-authored-by: Deniz Altunkapan <deniz.altunkapan@outlook.com>
2025-11-05 18:41:08 +01:00
Avaneeshakrishna
53230842f2 add CombinationSum and test (#6725)
* add CombinationSum and test

* Format array and list literals in CombinationSumTest

* Fix sorting comparator in CombinationSumTest

* Refactor CombinationSum for better handling and clarity

Updated combinationSum method to handle null or empty candidates and improved variable naming for clarity.

* Fix sorting comparator in CombinationSumTest

* Update CombinationSumTest.java

* Fix sorting comparator for list of integers

* Fix formatting issues in CombinationSum class

* Change CombinationSum class to final

* Refactor norm method to accept Iterable instead of List

* Remove unnecessary whitespace in CombinationSumTest
2025-11-05 11:22:39 +00:00
Lê Nam Khánh
5c965eb097 chore: fix typos in src/test/java/com/thealgorithms/datastructures (#7045)
Fix typos in src/test/java/com/thealgorithms/datastructures
2025-11-05 11:09:05 +02:00
Sourav Pati
100462d8e9 Added LU Decomposition Algorithm for matrix (#6834)
* Added LU decomposition algorthm

* Added LU decomposition algorthim

* Added LU decomposition algorthim

* Added LU decomposition algorthim

* Added LU decomposition algorthim

* Added LU decomposition algorthim

* Added LU decomposition algorthim

* Added LU decomposition algorthim

* Added LU decomposition algorthim
2025-11-03 22:29:44 +01:00
Yajunesh MR
82ff14c36e feat: Add BitRotate utility for circular bit rotations (#7011)
* feat: Add BitRotate utility for circular bit rotations

* feat: Add BitRotate utility for circular bit rotations

* feat: Add BitRotate utility for circular bit rotations

* fix: Remove trailing spaces and add newline at EOF

---------

Co-authored-by: Yajunesh M R <yajunesh@Yajuneshs-MacBook-Pro.local>
2025-11-03 22:12:24 +01:00
sharan
d717ca4fd5 feat: Add Hierholzer's Algorithm for Eulerian Circuits (#6726)
* feat: Add Hierholzer's Algorithm for Eulerian Circuits

* fix: Add more test cases to improve code coverage

* feat: Add Hierholzer's Algorithm for Eulerian Circuits

* fix: Apply clang-format after merge

* fix: Apply all formatting, style, and efficiency fixes

* docs: Apply feedback and improve Javadoc

* docs: Add Hierholzer's Algorithm to DIRECTORY.md
2025-11-02 10:36:10 +00:00
Priyanshu Kumar Singh
08374248e9 [FEAT] Add Coulomb's Law for electrostatics (#7017)
Co-authored-by: Priyanshu1303d <priyanshu130d@gmail.com>
2025-11-01 09:28:44 +00:00
sairamsharan
bb6385e756 feat: Add Stoer-Wagner Algorithm for Minimum Cut (#6752)
* feat: Add Stoer-Wagner Algorithm for Minimum Cut

* fix: Correct Stoer-Wagner implementation

* fix: Remove unused import

* fix: Apply clang-format
2025-10-29 09:08:05 +00:00