10000 [pull] master from phishman3579:master by pull[bot] · Pull Request #1 · aav789/java-algorithms-implementation · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

[pull] master from phishman3579:master #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 435 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
435 commits
Select commit Hold shift + click to select a range
52c600e
Removed timing tests from CI
phishman3579 Sep 2, 2016
969ddec
Merge branch 'push-relabel' of https://github.com/wodomierz/java-algo…
phishman3579 Sep 2, 2016
ab2f68f
A bit of code cleanup to follow the same pattern as the rest of the c…
phishman3579 Sep 2, 2016
c6de2f4
Merge branch 'push-relabel into master'
phishman3579 Sep 2, 2016
8edb601
Claned up the comments on a number of graph classes
phishman3579 Sep 2, 2016
e7e5ac4
Code clean-up of PushRelabl plus another test case
phishman3579 Sep 2, 2016
a982e9e
#19 improved readability of StringFunctions, also added a iterative v…
phishman3579 Sep 20, 2016
6cc19ea
Found a small bug in KdTree
phishman3579 Dec 30, 2016
45fd83b
Removed unused param in queue
phishman3579 Dec 30, 2016
77a4d0d
Fixed the post-order DFS in BST and added unit tests for bug #21
phishman3579 Dec 30, 2016
7ab3c8f
Update List.java
samyanez94 Jan 25, 2017
300cc71
Merge pull request #22 from samyanez94/patch-1
phishman3579 Jan 27, 2017
a162cd7
Code clean-up of the merge request, along with better junit tests for…
phishman3579 Jan 27, 2017
56812cc
Added Kurskal's algorithm
Feb 18, 2017
cab37ec
Some code clean-up in Kruskal
phishman3579 Feb 19, 2017
a698e4d
Merge branch 'arytmetyk-master'
phishman3579 Feb 19, 2017
70abb42
Added lower bound and upper bound algorithms.
Feb 19, 2017
3dfde66
Added longest increasing subsequence algorithm.
Feb 19, 2017
0cf9326
Implementation of KMP algorithm
SzymonStankiewicz Feb 19, 2017
aed785c
Test for finding prefix-suffix table
SzymonStankiewicz Feb 19, 2017
430d0d8
Removed diamon operator
SzymonStankiewicz Feb 19, 2017
2828b1d
Merge branch 'master' of git://github.com/arytmetyk/java-algorithms-i…
phishman3579 Feb 20, 2017
c79b207
Added class and code comments for longest increasing subsequence
phishman3579 Feb 20, 2017
0a0faac
Merge branch 'master' of git://github.com/Dakurels/java-algorithms-im…
phishman3579 Feb 20, 2017
2407b8c
Added class and code comments for KMP algo
phishman3579 Feb 20, 2017
42bb272
Merge branch 'Dakurels-master'
phishman3579 Feb 20, 2017
623e561
Expanded the KMP title for readability
phishman3579 Feb 20, 2017
437f8f8
Added multiplication using FFT
mciancia Feb 21, 2017
ec47a14
Updated readme
mciancia Feb 21, 2017
7f6d416
Added compatibility with Java 6
mciancia Feb 21, 2017
9eb7e60
Refactor
mciancia Feb 21, 2017
7ab0cc2
Added class headers and cleaned up function names
phishman3579 Feb 21, 2017
313c657
Added class headers and cleaned up function names
phishman3579 Feb 21, 2017
f2b9a21
Changed the KMP algorithm to be it's own class
phishman3579 Feb 21, 2017
562b98c
Removed debugging I added to KMP when refactoring
phishman3579 Feb 21, 2017
05e32e6
Changed ant to use encoding UTF-8 to make compatible with my OSX build
phishman3579 Feb 21, 2017
ff72ed6
Implementation of euler's function
SzymonStankiewicz Feb 22, 2017
d26fb09
Method name refactor and javadoc added
SzymonStankiewicz Feb 22, 2017
ee59cea
Implementation of calculating greatest common divisor
SzymonStankiewicz Feb 22, 2017
b0581ab
Combined the two GCD calculators into a single class and cleaned up s…
phishman3579 Feb 22, 2017
d122dbe
Updated README based on new functions
phishman3579 Feb 22, 2017
4197d0e
Merge branch 'master' of git://github.com/mciancia/java-algorithms-im…
phishman3579 Feb 22, 2017
108f339
Updated FFT to include class headers and some code clean-up
phishman3579 Feb 22, 2017
d3908f4
Added multiplication using FFT
mciancia Feb 21, 2017
1bbaae9
Updated readme
mciancia Feb 21, 2017
f1f3475
Added compatibility with Java 6
mciancia Feb 21, 2017
2a8c6f3
Refactor
mciancia Feb 21, 2017
663c271
Updated FFT to include class headers and some code clean-up
phishman3579 Feb 22, 2017
7ea5646
Merge branch 'master' into master
phishman3579 Feb 22, 2017
e7644e6
Deconflict merge with master changes
phishman3579 Feb 22, 2017
7fe72c1
Merge branch 'mciancia-master'
phishman3579 Feb 22, 2017
b5f5fe5
Adding recursive permutations generating
laucer Feb 22, 2017
271bcdf
Adding PermutationsTest
laucer Feb 22, 2017
9dfd9c4
Delete PermutationsTest.java
laucer Feb 22, 2017
a21cc8f
Adding PermutationsTest
laucer Feb 22, 2017
29f8083
Delete PermutationsTest.java
laucer Feb 22, 2017
71a5939
Add files via upload
laucer Feb 22, 2017
b99f498
Merge branch 'master' of git://github.com/laucer/java-algorithms-impl…
phishman3579 Feb 22, 2017
e810873
Cleaned up permutations pull request and combined with existing function
phishman3579 Feb 22, 2017
54eb34b
Merge branch 'laucer-master'
phishman3579 Feb 22, 2017
f32faf5
Update README.md
phishman3579 Feb 22, 2017
0810d2e
Made the int permutation generic
phishman3579 Feb 22, 2017
02e137b
Add files via upload
laucer Feb 22, 2017
c43b4e8
Delete MatrixIdentity.java
laucer Feb 22, 2017
9e22f7f
Delete MatrixIdentityTest.java
laucer Feb 22, 2017
6e6fdf1
Moved complex class into it's own class
phishman3579 Feb 23, 2017
768f906
Little bit of code clean-up
phishman3579 Feb 23, 2017
d4113df
Added Complex numbers to README
phishman3579 Feb 23, 2017
2fc7fa1
Changes section name to "Graphs", adds Push-relabel to readme
mciancia Feb 23, 2017
78c3638
Merge pull request #30 from mciancia/master
phishman3579 Feb 23, 2017
05cb074
Updated README
phishman3579 Feb 25, 2017
a0ac66f
Implementation of modular arithmetic
SzymonStankiewicz Feb 25, 2017
3ca8875
Tests for modular arithmetic
SzymonStankiewicz Feb 25, 2017
cb0a158
Updated readme
SzymonStankiewicz Feb 25, 2017
f48e77e
Merge branch 'Dakurels-master' - modular math
phishman3579 Feb 25, 2017
3b6b566
Updated the header comments on Modular and Coprimes classes
phishman3579 Feb 25, 2017
a2adc81
adding identity method
laucer Feb 25, 2017
b2547f2
adding matrix identity test method
laucer Feb 25, 2017
b1ca0d5
Implementation of finding minimal string rotation
SzymonStankiewicz Feb 26, 2017
0769682
Tests for finding minimal string rotation
SzymonStankiewicz Feb 26, 2017
de521a2
Readme update
SzymonStankiewicz Feb 26, 2017
83227ca
Added more code comments and a bit of clean-up
phishman3579 Feb 26, 2017
053654a
git push origin masterMerge branch 'Dakurels-master' - String rotation
phishman3579 Feb 26, 2017
5cd1858
adding identity method
laucer Feb 26, 2017
e2c259b
Merge branch 'master' of git://github.com/laucer/java-algorithms-impl…
phishman3579 Feb 26, 2017
7773b96
Bit of code clean-up in the Matrix class
phishman3579 Feb 26, 2017
6efbd7f
Bit of code clean-up in the Matrix class
phishman3579 Feb 26, 2017
c36feea
Merge branch 'laucer-master' - identity matrix method
phishman3579 Feb 26, 2017
ec4f588
Adds Edmonds-Karp algorithm
mciancia Feb 27, 2017
9a151d9
Add the solution to the Largest Sum of Contiguous Subarray and also t…
Mar 9, 2017
4180040
Add the solution to the longest palin­dromic sub­se­quence problem an…
Mar 9, 2017
d52411a
Update the ReadMe file to add the Largest sum of contiguous subarray …
Mar 9, 2017
80d2ef7
Update README.md
MiguelSteph Mar 9, 2017
d673f03
Code cleanup in code headers
phishman3579 Mar 17, 2017
088e7d8
Code cleanup in EdmondsKarp
phishman3579 Mar 17, 2017
7a99e9c
Merge branch 'mciancia-master' - merging EdmondsKarp
phishman3579 Mar 17, 2017
ffebfba
Merge branch 'master' of git://github.com/MiguelSteph/java-algorithms…
phishman3579 Mar 17, 2017
59aa3a4
Code clean-up in largest sum in a contiguous subarray
phishman3579 Mar 17, 2017
9ebe19b
Merge branch 'MiguelSteph-master' - largest sum in a contiguous subarray
phishman3579 Mar 17, 2017
e36e999
Added multiply using loop with string input.
Mar 23, 2017
219f2c3
Added tests in the test directory
Mar 23, 2017
2421111
Cleaned up multiplyUsingLoopWithStringInput, adjusted to account for …
phishman3579 Mar 23, 2017
06c0929
Merge branch 'codechefamit-master' - multiplyUsingLoop
phishman3579 Mar 23, 2017
5288959
Depth First Traversal
Apr 2, 2017
273dfeb
remove main function
Apr 3, 2017
86a2db1
added contents
Apr 4, 2017
6cc8fc2
update
Apr 4, 2017
6fe57e1
Update README.md
Apr 4, 2017
9100737
Update README.md
Apr 4, 2017
8240e29
Update
Apr 4, 2017
5563d88
Update README.md
Apr 4, 2017
6f93036
update
Apr 4, 2017
16eb762
perfect demo
Apr 4, 2017
3caaeaf
update first section
Apr 6, 2017
e880db0
link added on maths section
Apr 9, 2017
e29241c
links added in all the section
Apr 9, 2017
d2376e5
Reverted changes removed
phishman3579 Apr 12, 2017
c207c28
Merged README
phishman3579 Apr 12, 2017
218accd
Update README.md
phishman3579 Apr 12, 2017
1e51b7f
Merge branch 'master' into master
phishman3579 Apr 12, 2017
635e8c3
Added Breadth First traversal to readme
phishman3579 Apr 12, 2017
6f6e723
Update README.md
phishman3579 Apr 12, 2017
fa6a829
Added breadth first traversal of a graph
phishman3579 Apr 12, 2017
8515c7f
Moved the BFS into the test package
phishman3579 Apr 12, 2017
4a9a462
Update README.md
phishman3579 Apr 12, 2017 < 10000 /div>
7a6c9ab
Update README.md
phishman3579 Apr 12, 2017
1533d67
Added timing to graph test
phishman3579 Apr 12, 2017
59de3c9
added pull request templete and little bit update in readme
Apr 12, 2017
67f20b1
Merge branch 'master' of https://github.com/jsroyal/java-algorithms-i…
phishman3579 Apr 12, 2017
9858fc6
Updated readme
phishman3579 Apr 12, 2017
a9a16dd
git push origin masterMerge branch 'jsroyal-master'
phishman3579 Apr 12, 2017
7aa69e1
Added PR template in repo (#41)
Apr 12, 2017
2402806
#43 Fix for a wrong object equals
lifove Apr 15, 2017
a159900
Merge pull request #44 from lifove/master
phishman3579 Apr 15, 2017
e7a85c1
URL changes
sridhargopinath May 15, 2017
c18be2d
Fixed bug in ProbingHashMap - clear() method was not clearing array e…
Kietzmann May 17, 2017
a68c19b
Merge pull request #48 from Kietzmann/ProbingHashMapFix
phishman3579 May 17, 2017
2849f0c
Fixed bug in ProbingHashMap - indexOf method could cause indexOutOfBo…
Kietzmann May 18, 2017
ebcaaf1
Merge pull request #49 from Kietzmann/HashMapFixIndexOf
phishman3579 May 18, 2017
9b757f8
Merge pull request #46 from gsridhar53/patch-1
phishman3579 May 18, 2017
c4f9e67
Update README.md
phishman3579 May 18, 2017
2b6c203
Update README.md
phishman3579 May 18, 2017
f97f78d
Update README.md
phishman3579 May 18, 2017
fce3b33
Update README.md
phishman3579 May 18, 2017
b3ff518
Update README.md
phishman3579 May 18, 2017
21e0046
Added Manacher's algorithm
piotrkruk Jun 6, 2017
19498e1
Code cleanup for merge request
phishman3579 Jun 7, 2017
fd1510c
Merge branch 'piotrkruk-master'
phishman3579 Jun 7, 2017
b9d5639
Update README.md
phishman3579 Jun 7, 2017
df4289c
Update README.md
phishman3579 Jun 7, 2017
5a71213
Update README.md
phishman3579 Jun 7, 2017
a922830
Update README.md
phishman3579 Jun 7, 2017
ffe5904
Added exponentiation algorithms.
arytmetyk Jun 21, 2017
8d1ec17
Code clean-up for pull request
phishman3579 Jun 21, 2017
dc840de
Merge branch 'arytmetyk-master'
phishman3579 Jun 21, 2017
dd360cd
Fixed a couple of 'possible' bugs
phishman3579 Jun 21, 2017
1da66fc
Fixed modulo exponentiation issue.
Jun 21, 2017
d88feae
Added Miller-Rabin primality test algorithm.
arytmetyk Jun 21, 2017
36c5474
Merge branch 'master' of https://github.com/arytmetyk/java-algorithms…
phishman3579 Jun 22, 2017
0efe55d
Code clean-up for pull request
phishman3579 Jun 22, 2017
ab94b8a
Merge branch 'arytmetyk-master'
phishman3579 Jun 22, 2017
0c9cb11
Merge branch 'master' of github.com:phishman3579/java-algorithms-impl…
phishman3579 Jun 22, 2017
9ac3354
Merge branch 'master' of github.com:phishman3579/java-algorithms-impl…
phishman3579 Jun 22, 2017
0406142
Added Turbo Matching
KubaSz4 Jun 27, 2017
a182542
Diamond operator fixed
KubaSz4 Jun 27, 2017
c7f24c3
Added Suffix Array
KubaSz4 Jun 27, 2017
9f82f11
Lambdas removed
KubaSz4 Jun 27, 2017
7f5ccd9
Added LCP Array Tests
KubaSz4 Jun 28, 2017
8a951a7
Added LCP Array
KubaSz4 Jun 28, 2017
9ccb6d4
Added LCP Array - README
KubaSz4 Jun 28, 2017
2f826ce
Code cleanup
phishman3579 Jul 3, 2017
eb56f0e
Merge branch 'KubaSz4-lcp_array'
phishman3579 Jul 3, 2017
e7fa878
Javadoc clean-up
phishman3579 Jul 3, 2017
330c326
adding discrete logarithm
Jul 3, 2017
13d4773
Code clean-up
phishman3579 Jul 3, 2017
35b12b3
Merge branch 'laucer-master'
phishman3579 Jul 3, 2017
4c167b1
Code clean-up
phishman3579 Jul 4, 2017
6901b22
Adds LU decomposition algorithm
mciancia Jul 4, 2017
f355ec5
Fixed compatibility with java 1.6
mciancia Jul 4, 2017
2921112
Merge branch 'master' of https://github.com/mciancia/java-algorithms-…
phishman3579 Jul 4, 2017
2e470b0
Code clean-up
phishman3579 Jul 4, 2017
dc60bca
Merge branch 'mciancia-master'
phishman3579 Jul 4, 2017
025fca6
Fix a root==null bug in the toString
phishman3579 Aug 9, 2017
5a34ea8
Added a method to provide your own data to the test Utils class
phishman3579 Aug 9, 2017
b27e2b1
Added ternary search tree
phishman3579 Aug 9, 2017
b5134b8
Simplified code in TernarySearchTree
phishman3579 Aug 9, 2017
96ad312
Added Ternary Search Tree to README
phishman3579 Aug 9, 2017
833341a
Code simplification in Ternary Search Tree
phishman3579 Aug 10, 2017
c277f19
Fixed travis.yml due to Oracle's withdrawal
SzymonStankiewicz Sep 4, 2017
da73ae8
Implementation of interval sum data structure.
SzymonStankiewicz Sep 4, 2017
6163af3
Implementation of lowest common ancestor.
SzymonStankiewicz Sep 5, 2017
62bbfa2
Merge pull request #63 from SzymonStankiewicz/subsequence-sum
phishman3579 Sep 5, 2017
ce10dd9
Renamed Tree to RootedTree and added 'contains' and 'find' methods to…
SzymonStankiewicz Sep 5, 2017
34deeb9
Merge pull request #64 from SzymonStankiewicz/tree
phishman3579 Sep 5, 2017
0863f24
Update .travis.yml
phishman3579 Sep 20, 2017
b6464f5
Update .travis.yml
phishman3579 Sep 20, 2017
75661cb
Code cleanup in Interval sum and rooted tree
phishman3579 Sep 20, 2017
98c9394
Code cleanup in Interval sum and rooted tree
phishman3579 Sep 20, 2017
c8680af
Update .travis.yml
phishman3579 Sep 20, 2017
39d4f2d
Update .travis.yml
phishman3579 Sep 20, 2017
c00a62e
Code cleanup in Lowest Common Ancestor
phishman3579 Sep 20, 2017
b23f385
Updated IntervalSum and LowestCommonAncestor
phishman3579 Sep 20, 2017
f067a89
Update BinarySearchTree.java
geosmart Oct 11, 2017
4cd540a
Merge pull request #65 from geosmart/patch-1
phishman3579 Oct 11, 2017
c42708b
fix typo
ParkChangHan Oct 15, 2017
91d5393
Merge pull request #66 from ParkChangHan/master
phishman3579 Oct 15, 2017
fbf24fa
Remove obsolete code
ParkChangHan Nov 13, 2017
2adccbd 8000
Merge pull request #72 from ParkChangHan/master
phishman3579 Nov 14, 2017
724ef3c
Modified Dijkstra test typo
sungmkim93 Nov 20, 2017
d428afe
Fixed Param of Comment
ParkChangHan Nov 20, 2017
6596bbe
Fixed Dijkstra test typo
sungmkim93 Nov 20, 2017
3126082
Fixed param of Comment in getDirenctions
ParkChangHan Nov 20, 2017
5dc01d3
Fixed param of Comment in validateNode
ParkChangHan Nov 20, 2017
ed54292
Fix incorrected spelling
sungmkim93 Nov 20, 2017
c38908c
Fix incorrected spelling
sungmkim93 Nov 20, 2017
616213e
Test unused Method
ParkChangHan Nov 20, 2017
835aa66
Merge branch 'pch'
ParkChangHan Nov 20, 2017
aac1f8b
Fixed Param comment
ParkChangHan Nov 27, 2017
ac23dab
Fixed Param comment in InterverTree
ParkChangHan Nov 27, 2017
b85ef7e
Fixed Param comment in SegmentTree
ParkChangHan Nov 27, 2017
5033342
Fixed Param comment in ConnectedComponents
ParkChangHan Nov 27, 2017
2b0a3b0
Update Knapsack.java
aniders Feb 14, 2018
313d51f
Merge pull request #79 from sungmkim93/master
phishman3579 Feb 14, 2018
762fb2f
Merge pull request #78 from ParkChangHan/master
phishman3579 Feb 14, 2018
e6ff7a8
Merge pull request #87 from aniders/patch-1
phishman3579 Feb 22, 2018
7a7549d
Closes #91 Bug fix
phishman3579 May 3, 2018
4c8e4c4
Updates to yaml to get jdk6 working in travis-ci
phishman3579 Feb 21, 2019
62e9f1d
Updates to yaml to get jdk6 working in travis-ci
phishman3579 Feb 21, 2019
f0639aa
Dropping builds for jdk6 because travis-ci no longer supports
phishman3579 Feb 21, 2019
e596644
Fixed the Queue grow method comment about resizing
phishman3579 Feb 21, 2019
cdafbb9
Found a bug in the grow method of the ArrayQueue
phishman3579 Feb 21, 2019
b982482
Fixed a bug in the getHeadValue of the Heap structures
phishman3579 Feb 21, 2019
edf84c5
Fixed a bug in the ArrayQueue iterator
phishman3579 Feb 21, 2019
356dfb1
Fixed a bug in the getHeadValue of the Heap structures
phishman3579 Feb 21, 2019
d3d1d03
Added Comment on Linear Search Logic
nishant-ingle Oct 26, 2019
16f2fc1
Update BubbleSort.java
gauravdarbhanga Oct 30, 2019
38d06ee
Update CountingSort.java
gauravdarbhanga Oct 30, 2019
71d8b30
Update BinarySearch.java
gauravdarbhanga Oct 30, 2019
4e8de43
Update LowerBound.java
gauravdarbhanga Oct 30, 2019
769cb67
Removed hedging and improved grammar in README.md
BryanChan777 Nov 24, 2019
81a028f
Update README.md
KisaragiEffective Jan 2, 2020
6328fcf
Update .travis.yml
phishman3579 Jan 29, 2020
447412d
Merge pull request #150 from phishman3579/travis-ci-update
phishman3579 Jan 29, 2020
652105f
Merge pull request #147 from KisaragiEffective/patch-1
phishman3579 Jan 29, 2020
b8d3a07
Merge pull request #144 from BryanChan777/patch-2
phishman3579 Jan 29, 2020
678eee8
Merge pull request #137 from kalyaniingle/master
phishman3579 Jan 29, 2020
1162a5e
Merge pull request #142 from gauravdarbhanga/patch-4
phishman3579 Jan 29, 2020
c4dab39
Merge pull request #141 from gauravdarbhanga/patch-3
phishman3579 Jan 29, 2020
ed855d6
8000 Merge pull request #140 from gauravdarbhanga/patch-2
phishman3579 Jan 29, 2020
f2d1157
Merge pull request #139 from gauravdarbhanga/patch-1
phishman3579 Jan 29, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .classpath
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="src" path="test"/>
<classpathentry kind="lib" path="lib/junit-4_4.3.1.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="bin"/>
</classpath>
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
/bin/
/build/
/dist/
34 changes: 34 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
before_script:
- sudo apt-get install ant-optional
- export OPTS="-server -Xmx3072M"
- export JAVA_OPTS="${JAVA_OPTS} ${OPTS}"
- export ANT_OPTS="${ANT_OPTS} ${OPTS}"
- echo $JAVA_OPTS
- echo $ANT_OPTS

dist: trusty

language: java

jdk:
- oraclejdk9
- oraclejdk8
# - oraclejdk7
# - oraclejdk6

# - openjdk9
- openjdk8
- openjdk7
# - openjdk6

env:
- TEST_SUITE=run_tests
# - TEST_SUITE=mathematics
# - TEST_SUITE=numbers
# - TEST_SUITE=search
# - TEST_SUITE=sequences
# - TEST_SUITE=strings
# - TEST_SUITE=data_structures
# - TEST_SUITE=sorts

script: "ant $TEST_SUITE"
15 changes: 15 additions & 0 deletions PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<!--
Hi!
Thanks for considering contributing to this ever-growing list of algorithm and data structure implementations in java.
Your contribution is valuable.
In order to help us evaluate PRs better, we ask you to have a look at the following declaration and check the points you agree with. ( [x] )
PRs which don't agree to all the points mentioned below will be rejected.
-->


#### By submitting this pull request I confirm I've read and complied with the below requirements.

- [ ] I have read the [Contribution guidelines](CONTRIBUTING.md) and I am confident that my PR reflects them.
- [ ] I have followed the [coding guidelines](CONTRIBUTING.md#cs) for this project.
- [ ] My code follows the [skeleton code structure](CONTRIBUTING.md#sample).
- [ ] This pull request has a descriptive title. For example, `Added {Algorithm/DS name} [{Language}]`, not `Update README.md` or `Added new code`.
220 changes: 218 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,220 @@
java-algorithms-implementation
Java : Algorithms and Data Structure ![alt tag](https://api.travis-ci.org/phishman3579/java-algorithms-implementation.svg?branch=master)
==============================

Algorithms and Data Structures implemented in Java
The algorithms and data structures are implemented in Java.

This is a collection of algorithms and data structures I've implemented in my academic and professional life. The code isn't optimized but is written to be correct and readable. The algorithms and data structures are tested and, unless noted, believed to be correct.

## Created by Justin Wetherell

* For questions use: http://groups.google.com/forum/#!forum/java-algorithms-implementation
* Google: http://code.google.com/p/java-algorithms-implementation
* Github: http://github.com/phishman3579/java-algorithms-implementation
* LinkedIn: http://www.linkedin.com/in/phishman3579
* E-mail: phishman3579@gmail.com
* Twitter: http://twitter.com/phishman3579

## Support me with a donation

<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=phishman3579%40gmail%2ecom&lc=US&item_name=Support%20open%20source&item_number=JavaAlgorithms&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donateCC_SM%2egif%3aNonHosted" target="_new"><img border="0" alt="Donate to this project" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif"></a>

# What's been implemented:

## Table of Contents
- [Data Structures](#data-structures)
- [Mathematics](#mathematics)
- [Numbers](#numbers)
- [Graphs](#graphs)
- [Search](#search)
- [Sequences](#sequences)
- [Sorts](#sorts)
- [String Functions](#string-functions)

## Data Structures
* [AVL Tree](src/com/jwetherell/algorithms/data_structures/AVLTree.java)
* [B-Tree](src/com/jwetherell/algorithms/data_structures/BTree.java)
* [Binary Heap (backed by an array or a tree)](src/com/jwetherell/algorithms/data_structures/BinaryHeap.java)
* [Binary Search Tree](src/com/jwetherell/algorithms/data_structures/BinarySearchTree.java)
* [Compact Suffix Trie (backed by a Patricia Trie)](src/com/jwetherell/algorithms/data_structures/CompactSuffixTrie.java)
* [Disjoint Set](src/com/jwetherell/algorithms/data_structures/DisjointSet.java)
* [Fenwick Tree {Binary Indexed Tree (BIT)}](src/com/jwetherell/algorithms/data_structures/FenwickTree.java)
* [Graph](src/com/jwetherell/algorithms/data_structures/Graph.java)
+ Undirected
+ Directed (Digraph)
* [Hash Array Mapped Trie (HAMT)](src/com/jwetherell/algorithms/data_structures/HashArrayMappedTrie.java)
* [Hash Map (associative array)](src/com/jwetherell/algorithms/data_structures/HashMap.java)
* [Interval Tree](src/com/jwetherell/algorithms/data_structures/IntervalTree.java)
* [Implicit Key Treap](src/com/jwetherell/algorithms/data_structures/ImplicitKeyTreap.java)
* [KD Tree (k-dimensional tree or k-d tree)](src/com/jwetherell/algorithms/data_structures/KdTree.java)
* [List [backed by an array or a linked list]](src/com/jwetherell/algorithms/data_structures/List.java)
* [LCP Array (Longest Common Prefix) [backed by a Suffix Array]](src/com/jwetherell/algorithms/data_structures/LCPArray.java)
* [Matrix](src/com/jwetherell/algorithms/data_structures/Matrix.java)
* [Patricia Trie](src/com/jwetherell/algorithms/data_structures/PatriciaTrie.java)
* [Quad-Tree (Point-Region or MX-CIF)](src/com/jwetherell/algorithms/data_structures/QuadTree.java)
* [Queue [backed by an array or a linked list]](src/com/jwetherell/algorithms/data_structures/Queue.java)
* [Radix Trie (associative array) [backed by a Patricia Trie]](src/com/jwetherell/algorithms/data_structures/RadixTrie.java)
* [Red-Black Tree](src/com/jwetherell/algorithms/data_structures/RedBlackTree.java)
* [Segment Tree](src/com/jwetherell/algorithms/data_structures/SegmentTree.java)
* [Skip List](src/com/jwetherell/algorithms/data_structures/SkipList.java)
* [Splay Tree](src/com/jwetherell/algorithms/data_structures/SplayTree.java)
* [Stack [backed by an array or a linked list]](src/com/jwetherell/algorithms/data_structures/Stack.java)
* [Suffix Array](src/com/jwetherell/algorithms/data_structures/SuffixArray.java)
* [Suffix Tree (Ukkonen's algorithm)](src/com/jwetherell/algorithms/data_structures/SuffixTree.java)
* [Suffix Trie [backed by a Trie]](src/com/jwetherell/algorithms/data_structures/SuffixTrie.java)
* [Ternary Search Tree](src/com/jwetherell/algorithms/data_structures/TernarySearchTree.java)
* [Treap](src/com/jwetherell/algorithms/data_structures/Treap.java)
* [Tree](src/com/jwetherell/algorithms/data_structures/Tree.java)
* [Tree Map (associative array) [backed by an AVL Tree]](src/com/jwetherell/algorithms/data_structures/TreeMap.java)
* [Trie](src/com/jwetherell/algorithms/data_structures/Trie.java)
* [Trie Map (associative array) [backed by a Trie]](src/com/jwetherell/algorithms/data_structures/TrieMap.java)

## Mathematics
* [Distance](src/com/jwetherell/algorithms/mathematics/Distance.java)
+ chebyshev
+ euclidean
* [Division](src/com/jwetherell/algorithms/mathematics/Division.java)
+ using a loop
+ using recursion
+ using shifts and multiplication
+ using only shifts
+ using logarithm
* [Multiplication](src/com/jwetherell/algorithms/mathematics/Multiplication.java)
+ using a loop
+ using recursion
+ using only shifts
+ using logarithms
+ [Fast Fourier Transform](src/com/jwetherell/algorithms/mathematics/FastFourierTransform.java)
* [Exponentiation](src/com/jwetherell/algorithms/mathematics/Exponentiation.java)
+ recursive exponentiation
+ fast recursive exponentiation
+ fast modular recursive exponentiation
* [Primes](src/com/jwetherell/algorithms/mathematics/Primes.java)
+ is prime
+ prime factorization
+ sieve of eratosthenes
+ Miller-Rabin test
+ [Co-Primes (relatively prime, mutually prime)](src/com/jwetherell/algorithms/mathematics/Coprimes.java)
+ [Greatest Common Divisor](src/com/jwetherell/algorithms/mathematics/GreatestCommonDivisor.java)
- using Euclid's algorithm
- using recursion
* [Permutations](src/com/jwetherell/algorithms/mathematics/Permutations.java)
+ strings
+ numbers
* [Modular arithmetic](src/com/jwetherell/algorithms/mathematics/Modular.java)
+ add
+ subtract
+ multiply
+ divide
+ power
* [Knapsack](src/com/jwetherell/algorithms/mathematics/Knapsack.java)
* [Ramer Douglas Peucker](src/com/jwetherell/algorithms/mathematics/RamerDouglasPeucker.java)

## Numbers
* [Integers](src/com/jwetherell/algorithms/numbers/Integers.java)
+ to binary String
- using divide and modulus
- using right shift and modulus
- using BigDecimal
- using divide and double
+ is a power of 2
- using a loop
- using recursion
- using logarithm
- using bits
+ to English (e.g. 1 would return "one")
* [Longs](src/com/jwetherell/algorithms/numbers/Longs.java)
+ to binary String
- using divide and modulus
- using right shift and modulus
- using BigDecimal
* [Complex](src/com/jwetherell/algorithms/numbers/Complex.java)
+ addition
+ subtraction
+ multiplication
+ absolute value
+ polar value

## Graphs
* Find shortest path(s) in a Graph from a starting Vertex
- [Dijkstra's algorithm (non-negative weight graphs)](src/com/jwetherell/algorithms/graph/Dijkstra.java)
- [Bellman-Ford algorithm (negative and positive weight graphs)](src/com/jwetherell/algorithms/graph/BellmanFord.java)
* Find minimum spanning tree
- [Prim's (undirected graphs)](src/com/jwetherell/algorithms/graph/Prim.java)
- [Kruskal's (undirected graphs)](src/com/jwetherell/algorithms/graph/Kruskal.java)
* Find all pairs shortest path
- [Johnsons's algorithm (negative and positive weight graphs)](src/com/jwetherell/algorithms/graph/Johnsons.java)
- [Floyd-Warshall (negative and positive weight graphs)](src/com/jwetherell/algorithms/graph/FloydWarshall.java)
* [Cycle detection](src/com/jwetherell/algorithms/graph/CycleDetection.java)
- Depth first search while keeping track of visited Verticies
- [Connected Components](src/com/jwetherell/algorithms/graph/ConnectedComponents.java)
* [Topological sort](src/com/jwetherell/algorithms/graph/TopologicalSort.java)
* [A* path finding algorithm](src/com/jwetherell/algorithms/graph/AStar.java)
* Maximum flow
- [Push-Relabel](src/com/jwetherell/algorithms/graph/PushRelabel.java)
* Graph Traversal
- [Depth First Traversal](src/com/jwetherell/algorithms/graph/DepthFirstTraversal.java)
- [Breadth First Traversal](src/com/jwetherell/algorithms/graph/BreadthFirstTraversal.java)
* [Edmonds Karp](src/com/jwetherell/algorithms/graph/EdmondsKarp.java)
* Matching
- [Turbo Matching](src/com/jwetherell/algorithms/graph/TurboMatching.java)
* [Lowest common ancestor in tree](src/com/jwetherell/algorithms/data_structures/Tree.java)


## Search
* Get index of value in array
+ [Linear](src/com/jwetherell/algorithms/search/LinearSearch.java)
+ [Quickselect](src/com/jwetherell/algorithms/search/QuickSelect.java)
+ [Binary [sorted array input only]](src/com/jwetherell/algorithms/search/BinarySearch.java)
+ [Lower bound [sorted array input only]](src/com/jwetherell/algorithms/search/LowerBound.java)
+ [Upper bound [sorted array input only]](src/com/jwetherell/algorithms/search/UpperBound.java)
+ Optimized binary (binary until a threashold then linear) [sorted array input only]
+ [Interpolation [sorted array input only]](src/com/jwetherell/algorithms/search/InterpolationSearch.java)

## Sequences
* [Find longest common subsequence (dynamic programming)](src/com/jwetherell/algorithms/sequence/LongestCommonSubsequence.java)
* [Find longest increasing subsequence (dynamic programming)](src/com/jwetherell/algorithms/sequence/LongestIncreasingSubsequence.java)
* [Find number of times a subsequence occurs in a sequence (dynamic programming)](src/com/jwetherell/algorithms/sequence/SubsequenceCounter.java)
* [Find i-th element in a Fibonacci sequence](src/com/jwetherell/algorithms/sequence/FibonacciSequence.java)
+ using a loop
+ using recursion
+ using matrix multiplication
+ using Binet's formula
* [Find total of all elements in a sequence(Arithmetic Progression)](src/com/jwetherell/algorithms/sequence/ArithmeticProgression.java)
+ using a loop
+ using Triangular numbers
* [Largest sum of contiguous subarray (Kadane's algorithm)](src/com/jwetherell/algorithms/sequence/LargestSumContiguousSubarray.java)
* [Longest palin­dromic sub­se­quence (dynamic programming)](src/com/jwetherell/algorithms/sequence/LongestPalindromicSubsequence.java)

## Sorts
* [American Flag Sort](src/com/jwetherell/algorithms/sorts/AmericanFlagSort.java)
* [Bubble Sort](src/com/jwetherell/algorithms/sorts/BubbleSort.java)
* [Counting Sort (Integers only)](src/com/jwetherell/algorithms/sorts/CountingSort.java)
* [Heap Sort](src/com/jwetherell/algorithms/sorts/HeapSort.java)
* [Insertion Sort](src/com/jwetherell/algorithms/sorts/InsertionSort.java)
* [Merge Sort](src/com/jwetherell/algorithms/sorts/MergeSort.java)
* [Quick Sort](src/com/jwetherell/algorithms/sorts/QuickSort.java)
* [Radix Sort (Integers only)](src/com/jwetherell/algorithms/sorts/RadixSort.java)
* [Shell's Sort](src/com/jwetherell/algorithms/sorts/ShellSort.java)

## String Functions
### [String Functions](src/com/jwetherell/algorithms/strings/StringFunctions.java)
* Reverse characters in a string
+ using additional storage (a String or StringBuilder)
+ using in-place swaps
+ using in-place XOR
* Reverse words in a string
+ using char swaps and additional storage (a StringBuilder)
+ using StringTokenizer and additional (a String)
+ using split() method and additional storage (a StringBuilder and String[])
+ using in-place swaps
* Is Palindrome
+ using additional storage (a StringBuilder)
+ using in-place symetric element compares
* Subsets of characters in a String
* Edit (Levenshtein) Distance of two Strings (Recursive, Iterative)
### [Manacher's algorithm (Find the longest Palindrome)](src/com/jwetherell/algorithms/strings/Manacher.java)
### [KMP (Knuth–Morris–Pratt) Algorithm - Length of maximal prefix-suffix for each prefix](src/com/jwetherell/algorithms/strings/KnuthMorrisPratt.java)
### [String rotations](src/com/jwetherell/algorithms/strings/Rotation.java)
+ Find in lexicographically minimal string rotation
+ Find in lexicographically maximal string rotation

Loading
0