diff --git a/.gitignore b/.gitignore
index 199bf8b..9835552 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,6 +4,9 @@
classes
out
target
-
+.vscode
+.settings
+.project
+.classpath
pom.xml.*
release.properties
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index d0e2cb4..2bd63d6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,194 +1,179 @@
-
-
-
- 4.0.0
-
-
- org.sonatype.oss
- oss-parent
- 7
-
-
- com.abranhe
- allalgorithms
- 0.0.1
-
- All Algorithms
- A huge collection of All Algorithms implemented in Java
- https://java.allalgorithms.com
- 2018
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.7.0
-
- 1.8
- 1.8
-
-
-
- org.sonatype.plugins
- nexus-staging-maven-plugin
- 1.6.7
- true
-
- ossrh
- https://oss.sonatype.org/
- true
-
-
-
- org.apache.maven.plugins
- maven-source-plugin
- 2.2.1
-
-
- attach-sources
-
- jar-no-fork
-
-
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- 2.9.1
-
-
- attach-javadocs
-
- jar
-
-
-
-
-
- org.apache.maven.plugins
- maven-gpg-plugin
- 1.5
-
-
- sign-artifacts
- verify
-
- sign
-
-
-
-
-
-
- jar
-
-
-
- release
-
-
-
- org.apache.maven.plugins
- maven-source-plugin
- 2.2.1
-
-
- attach-sources
-
- jar-no-fork
-
-
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- 2.9.1
-
-
- attach-javadocs
-
- jar
-
-
-
-
-
- org.apache.maven.plugins
- maven-gpg-plugin
- 1.5
-
-
- sign-artifacts
- verify
-
- sign
-
-
-
-
-
-
-
-
-
-
- UTF-8
- 1.7
- 1.7
-
-
-
-
- ossrh
- https://oss.sonatype.org/content/repositories/snapshots
-
-
- ossrh
- https://oss.sonatype.org/service/local/staging/deploy/maven2/
-
-
-
-
- http://github.com/abranhe/allalgorithms-java/
- scm:git:git://github.com/abranhe/allalgorithms-java.git
- scm:git:ssh://git@github.com/abranhe/allalgorithms-java.git
-
-
-
- GitHub Issues
- http://github.com/abranhe/allalgorithms-java/issues
-
-
-
-
- MIT License
- https://github.com/abranhe/allalgorithms-java/blob/master/license
-
-
-
-
-
- Carlos Abraham
- abraham@abranhe.com
- https://abranhe.com
-
-
-
-
+
+
+ 4.0.0
+
+ org.sonatype.oss
+ oss-parent
+ 7
+
+ com.abranhe
+ allalgorithms
+ 0.0.1
All Algorithms
- https://allalgorithms.com
-
-
-
-
- junit
- junit
- 4.11
- test
-
-
-
+ A huge collection of All Algorithms implemented in Java
+ https://java.allalgorithms.com
+ 2018
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.7.0
+
+ 1.8
+ 1.8
+
+
+
+ org.sonatype.plugins
+ nexus-staging-maven-plugin
+ 1.6.7
+ true
+
+ ossrh
+ https://oss.sonatype.org/
+ true
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+ 2.2.1
+
+
+ attach-sources
+
+ jar-no-fork
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.9.1
+
+
+ attach-javadocs
+
+ jar
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-gpg-plugin
+ 1.5
+
+
+ sign-artifacts
+ verify
+
+ sign
+
+
+
+
+
+
+ jar
+
+
+ release
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+ 2.2.1
+
+
+ attach-sources
+
+ jar-no-fork
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.9.1
+
+
+ attach-javadocs
+
+ jar
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-gpg-plugin
+ 1.5
+
+
+ sign-artifacts
+ verify
+
+ sign
+
+
+
+
+
+
+
+
+
+ UTF-8
+ 1.7
+ 1.7
+
+
+
+ ossrh
+ https://oss.sonatype.org/content/repositories/snapshots
+
+
+ ossrh
+ https://oss.sonatype.org/service/local/staging/deploy/maven2/
+
+
+
+ http://github.com/abranhe/allalgorithms-java/
+ scm:git:git://github.com/abranhe/allalgorithms-java.git
+ scm:git:ssh://git@github.com/abranhe/allalgorithms-java.git
+
+
+ GitHub Issues
+ http://github.com/abranhe/allalgorithms-java/issues
+
+
+
+ MIT License
+ https://github.com/abranhe/allalgorithms-java/blob/master/license
+
+
+
+
+ Carlos Abraham
+ abraham@abranhe.com
+ https://abranhe.com
+
+
+
+ All Algorithms
+ https://allalgorithms.com
+
+
+
+ junit
+ junit
+ 4.11
+ test
+
+
+
\ No newline at end of file
diff --git a/src/main/java/com/abranhe/allalgorithms/sorting/BubbleSort.java b/src/main/java/com/abranhe/allalgorithms/sorting/BubbleSort.java
new file mode 100644
index 0000000..29c7a00
--- /dev/null
+++ b/src/main/java/com/abranhe/allalgorithms/sorting/BubbleSort.java
@@ -0,0 +1,64 @@
+/*
+ * MIT License
+ * Copyright (c) 2018 Carlos Abraham Hernandez (abranhe.com)
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+package com.abranhe.allalgorithms.sorting;
+
+/**
+ * The class {@code BubbleSort} contains the methods to perform a sorting with
+ * the Bubble Sort Algorithm. For more information about bubble sort
+ * algorithm you can read on line or visit the documentation on
+ * Wikipedia.
+ *
+ * @author Carlos Abraham Hernandez
+ * @since 0.0.2
+ */
+public class BubbleSort {
+
+ /**
+ * This class should not be instantiated.
+ */
+ private BubbleSort() {
+ }
+
+ /**
+ * Sort an array of Generic Type in acending order. Returns an array with the
+ * values already sorted.
+ *
+ * @param arr an input array with unsorted items
+ * @return array of type
with items already sorted.
+ */
+ @SuppressWarnings("unchecked")
+ public static E[] sort(E[] arr) {
+ for (int i = 0; i < arr.length - 1; i++) {
+ for (int j = 0; j < arr.length - i - 1; j++) {
+ int diff = ((Comparable