diff --git a/.classpath b/.classpath
deleted file mode 100644
index 67d5f6d35..000000000
--- a/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/.gitignore b/.gitignore
index ae3c17260..bf2ba9450 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,5 @@
/bin/
+.idea/*
+.classpath*
+.project*
+*.iml
diff --git a/.project b/.project
deleted file mode 100644
index ea54703d8..000000000
--- a/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
- Java
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
-
- org.eclipse.jdt.core.javanature
-
-
diff --git a/Searches/src/search/BinarySearch.java b/Searches/BinarySearch.java
similarity index 99%
rename from Searches/src/search/BinarySearch.java
rename to Searches/BinarySearch.java
index 239bc98c6..f655c074f 100644
--- a/Searches/src/search/BinarySearch.java
+++ b/Searches/BinarySearch.java
@@ -1,4 +1,4 @@
-package search;
+package Searches;
import java.util.Arrays;
import java.util.Random;
diff --git a/Searches/src/search/InterpolationSearch.java b/Searches/InterpolationSearch.java
similarity index 99%
rename from Searches/src/search/InterpolationSearch.java
rename to Searches/InterpolationSearch.java
index 06313d13c..b2395797c 100644
--- a/Searches/src/search/InterpolationSearch.java
+++ b/Searches/InterpolationSearch.java
@@ -1,4 +1,4 @@
-package search;
+package Searches;
import java.util.Arrays;
import java.util.Random;
diff --git a/Searches/src/search/IterativeBinarySearch.java b/Searches/IterativeBinarySearch.java
similarity index 99%
rename from Searches/src/search/IterativeBinarySearch.java
rename to Searches/IterativeBinarySearch.java
index 17bfe3950..c6f8e7f1a 100644
--- a/Searches/src/search/IterativeBinarySearch.java
+++ b/Searches/IterativeBinarySearch.java
@@ -1,4 +1,4 @@
-package search;
+package Searches;
import java.util.Arrays;
import java.util.Random;
diff --git a/Searches/src/search/IterativeTernarySearch.java b/Searches/IterativeTernarySearch.java
similarity index 99%
rename from Searches/src/search/IterativeTernarySearch.java
rename to Searches/IterativeTernarySearch.java
index c3538e69f..598b3b3eb 100644
--- a/Searches/src/search/IterativeTernarySearch.java
+++ b/Searches/IterativeTernarySearch.java
@@ -1,4 +1,4 @@
-package search;
+package Searches;
import java.util.Arrays;
import java.util.Random;
diff --git a/Searches/src/search/LinearSearch.java b/Searches/LinearSearch.java
similarity index 98%
rename from Searches/src/search/LinearSearch.java
rename to Searches/LinearSearch.java
index 6e96da0f4..7664d7deb 100644
--- a/Searches/src/search/LinearSearch.java
+++ b/Searches/LinearSearch.java
@@ -1,4 +1,4 @@
-package search;
+package Searches;
import java.util.Random;
import java.util.stream.Stream;
diff --git a/Searches/src/search/SaddlebackSearch.java b/Searches/SaddlebackSearch.java
similarity index 99%
rename from Searches/src/search/SaddlebackSearch.java
rename to Searches/SaddlebackSearch.java
index 68779db8f..ed9c9108c 100644
--- a/Searches/src/search/SaddlebackSearch.java
+++ b/Searches/SaddlebackSearch.java
@@ -1,4 +1,4 @@
-package search;
+package Searches;
import java.util.Scanner;
diff --git a/Searches/src/search/SearchAlgorithm.java b/Searches/SearchAlgorithm.java
similarity index 96%
rename from Searches/src/search/SearchAlgorithm.java
rename to Searches/SearchAlgorithm.java
index ca3bf59ba..d1a93fb7e 100644
--- a/Searches/src/search/SearchAlgorithm.java
+++ b/Searches/SearchAlgorithm.java
@@ -1,4 +1,4 @@
-package search;
+package Searches;
/**
* The common interface of most searching algorithms
diff --git a/Searches/src/search/TernarySearch.java b/Searches/TernarySearch.java
similarity index 99%
rename from Searches/src/search/TernarySearch.java
rename to Searches/TernarySearch.java
index 7e60edf3a..cefd37409 100644
--- a/Searches/src/search/TernarySearch.java
+++ b/Searches/TernarySearch.java
@@ -1,4 +1,4 @@
-package search;
+package Searches;
import java.util.Arrays;
diff --git a/SkylineProblem/SkylineProblem.java b/SkylineProblem/SkylineProblem.java
deleted file mode 100644
index 121116e16..000000000
--- a/SkylineProblem/SkylineProblem.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/**
- * Given n rectangular buildings in a 2-dimensional city, computes the skyline of these buildings,
- * eliminating hidden lines. The main task is to view buildings from a side and remove all sections
- * that are not visible.
- * Source for explanation: https://www.geeksforgeeks.org/the-skyline-problem-using-divide-and-conquer-algorithm/
- */
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.Scanner;
-
-public class SkylineProblem {
- Building[] building;
- int count;
-
- public void run() {
- Scanner sc = new Scanner(System.in);
-
- int num = sc.nextInt();
- this.building = new Building[num];
-
- for(int i = 0; i < num; i++) {
- String input = sc.next();
- String[] data = input.split(",");
- this.add(Integer.parseInt(data[0]), Integer.parseInt(data[1]), Integer.parseInt(data[2]));
- }
- this.print(this.findSkyline(0, num - 1));
-
- sc.close();
- }
-
- public void add(int left, int height, int right) {
- building[count++] = new Building(left, height, right);
- }
-
- public void print(ArrayList skyline) {
- Iterator it = skyline.iterator();
-
- while(it.hasNext()) {
- Skyline temp = it.next();
- System.out.print(temp.coordinates + "," + temp.height);
- if(it.hasNext()) {
- System.out.print(",");
- }
- }
-
- }
-
- public ArrayList findSkyline(int start, int end) {
- if(start == end) {
- ArrayList list = new ArrayList<>();
- list.add(new Skyline(building[start].left, building[start].height));
- list.add(new Skyline(building[end].right, 0));
-
- return list;
- }
-
- int mid = (start + end) / 2;
-
- ArrayList sky1 = this.findSkyline(start, mid);
- ArrayList sky2 = this.findSkyline(mid + 1, end);
-
- return this.mergeSkyline(sky1, sky2);
- }
-
- public ArrayList mergeSkyline(ArrayList sky1, ArrayList sky2) {
- int currentH1 = 0, currentH2 = 0;
- ArrayList skyline = new ArrayList<>();
- int maxH = 0;
-
- while(!sky1.isEmpty() && !sky2.isEmpty()) {
- if(sky1.get(0).coordinates < sky2.get(0).coordinates) {
- int currentX = sky1.get(0).coordinates;
- currentH1 = sky1.get(0).height;
-
- if(currentH1 < currentH2) {
- sky1.remove(0);
- if(maxH != currentH2) skyline.add(new Skyline(currentX, currentH2));
- } else {
- maxH = currentH1;
- sky1.remove(0);
- skyline.add(new Skyline(currentX, currentH1));
- }
- } else {
- int currentX = sky2.get(0).coordinates;
- currentH2 = sky2.get(0).height;
-
- if(currentH2 < currentH1) {
- sky2.remove(0);
- if(maxH != currentH1) skyline.add(new Skyline(currentX, currentH1));
- } else {
- maxH = currentH2;
- sky2.remove(0);
- skyline.add(new Skyline(currentX, currentH2));
- }
- }
- }
-
- while(!sky1.isEmpty()) {
- skyline.add(sky1.get(0));
- sky1.remove(0);
- }
-
- while(!sky2.isEmpty()) {
- skyline.add(sky2.get(0));
- sky2.remove(0);
- }
-
- return skyline;
- }
-
- public class Skyline {
- public int coordinates;
- public int height;
-
- public Skyline(int coordinates, int height) {
- this.coordinates = coordinates;
- this.height = height;
- }
- }
-
- public class Building {
- public int left;
- public int height;
- public int right;
-
- public Building(int left, int height, int right) {
- this.left = left;
- this.height = height;
- this.right = right;
- }
- }
-
- public static void main(String[] args) {
- SkylineProblem skylineProblem = new SkylineProblem();
- skylineProblem.run();
- }
-}
diff --git a/Sorts/src/sort/BinaryTreeSort.java b/Sorts/BinaryTreeSort.java
similarity index 95%
rename from Sorts/src/sort/BinaryTreeSort.java
rename to Sorts/BinaryTreeSort.java
index 59d58ab61..26942754f 100644
--- a/Sorts/src/sort/BinaryTreeSort.java
+++ b/Sorts/BinaryTreeSort.java
@@ -1,7 +1,7 @@
-package sort;
+package Sorts;
-import static sort.SortUtils.less;
-import static sort.SortUtils.print;
+import static Sorts.SortUtils.less;
+import static Sorts.SortUtils.print;
/**
*
diff --git a/Sorts/src/sort/BogoSort.java b/Sorts/BogoSort.java
similarity index 82%
rename from Sorts/src/sort/BogoSort.java
rename to Sorts/BogoSort.java
index 1079ca21c..f3f923d32 100644
--- a/Sorts/src/sort/BogoSort.java
+++ b/Sorts/BogoSort.java
@@ -1,9 +1,7 @@
-package sort;
+package Sorts;
import java.util.Random;
-import static sort.SortUtils.*;
-
/**
*
@@ -19,7 +17,7 @@ public class BogoSort implements SortAlgorithm {
private static > boolean isSorted(T array[]){
for(int i = 0; i left; j--) {
- if (less(array[j], array[j - 1])) {
- swap(array, j - 1, j);
+ if (SortUtils.less(array[j], array[j - 1])) {
+ SortUtils.swap(array, j - 1, j);
swappedLeft = j;
}
}
@@ -56,11 +54,11 @@ class CocktailShakerSort implements SortAlgorithm {
CocktailShakerSort shakerSort = new CocktailShakerSort();
// Output => 1 4 6 9 12 23 54 78 231
- print(shakerSort.sort(integers));
+ SortUtils.print(shakerSort.sort(integers));
// String Input
String[] strings = { "c", "a", "e", "b", "d" };
- print(shakerSort.sort(strings));
+ SortUtils.print(shakerSort.sort(strings));
}
diff --git a/Sorts/src/sort/CombSort.java b/Sorts/CombSort.java
similarity index 97%
rename from Sorts/src/sort/CombSort.java
rename to Sorts/CombSort.java
index 492605ca5..83e24edae 100644
--- a/Sorts/src/sort/CombSort.java
+++ b/Sorts/CombSort.java
@@ -1,6 +1,6 @@
-package sort;
+package Sorts;
-import static sort.SortUtils.*;
+import static Sorts.SortUtils.*;
/**
diff --git a/Sorts/src/sort/CountingSort.java b/Sorts/CountingSort.java
similarity index 98%
rename from Sorts/src/sort/CountingSort.java
rename to Sorts/CountingSort.java
index 39442a00f..7243a27a9 100644
--- a/Sorts/src/sort/CountingSort.java
+++ b/Sorts/CountingSort.java
@@ -1,4 +1,4 @@
-package sort;
+package Sorts;
import java.util.*;
import java.util.stream.IntStream;
@@ -6,7 +6,7 @@ import java.util.stream.Stream;
import static java.util.stream.Collectors.toList;
import static java.util.stream.Collectors.toMap;
-import static sort.SortUtils.print;
+import static Sorts.SortUtils.print;
/**
*
diff --git a/Sorts/src/sort/CycleSort.java b/Sorts/CycleSort.java
similarity index 95%
rename from Sorts/src/sort/CycleSort.java
rename to Sorts/CycleSort.java
index ea4f05535..eba541a06 100644
--- a/Sorts/src/sort/CycleSort.java
+++ b/Sorts/CycleSort.java
@@ -1,7 +1,7 @@
-package sort;
+package Sorts;
-import static sort.SortUtils.less;
-import static sort.SortUtils.print;
+import static Sorts.SortUtils.less;
+import static Sorts.SortUtils.print;
/**
* @author Podshivalov Nikita (https://github.com/nikitap492)
diff --git a/Sorts/src/sort/GnomeSort.java b/Sorts/GnomeSort.java
similarity index 95%
rename from Sorts/src/sort/GnomeSort.java
rename to Sorts/GnomeSort.java
index 14af67c65..ef5dca141 100644
--- a/Sorts/src/sort/GnomeSort.java
+++ b/Sorts/GnomeSort.java
@@ -1,6 +1,6 @@
-package sort;
+package Sorts;
-import static sort.SortUtils.*;
+import static Sorts.SortUtils.*;
/**
* Implementation of gnome sort
diff --git a/Sorts/src/sort/HeapSort.java b/Sorts/HeapSort.java
similarity index 98%
rename from Sorts/src/sort/HeapSort.java
rename to Sorts/HeapSort.java
index 6fab3747f..9be2c2e70 100644
--- a/Sorts/src/sort/HeapSort.java
+++ b/Sorts/HeapSort.java
@@ -1,10 +1,10 @@
-package sort;
+package Sorts;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import static sort.SortUtils.*;
+import static Sorts.SortUtils.*;
/**
* Heap Sort Algorithm
diff --git a/Sorts/src/sort/InsertionSort.java b/Sorts/InsertionSort.java
similarity index 93%
rename from Sorts/src/sort/InsertionSort.java
rename to Sorts/InsertionSort.java
index 593614304..f29c3537c 100644
--- a/Sorts/src/sort/InsertionSort.java
+++ b/Sorts/InsertionSort.java
@@ -1,7 +1,7 @@
-package sort;
+package Sorts;
-import static sort.SortUtils.less;
-import static sort.SortUtils.print;
+import static Sorts.SortUtils.less;
+import static Sorts.SortUtils.print;
/**
*
diff --git a/Sorts/src/sort/MergeSort.java b/Sorts/MergeSort.java
similarity index 98%
rename from Sorts/src/sort/MergeSort.java
rename to Sorts/MergeSort.java
index 2c7a141bd..3c4fa4a2b 100644
--- a/Sorts/src/sort/MergeSort.java
+++ b/Sorts/MergeSort.java
@@ -1,6 +1,6 @@
-package sort;
+package Sorts;
-import static sort.SortUtils.print;
+import static Sorts.SortUtils.print;
/**
* This method implements the Generic Merge Sort
diff --git a/Sorts/src/sort/PancakeSort.java b/Sorts/PancakeSort.java
similarity index 95%
rename from Sorts/src/sort/PancakeSort.java
rename to Sorts/PancakeSort.java
index 902db4b39..395b75f93 100644
--- a/Sorts/src/sort/PancakeSort.java
+++ b/Sorts/PancakeSort.java
@@ -1,6 +1,6 @@
-package sort;
+package Sorts;
-import static sort.SortUtils.*;
+import static Sorts.SortUtils.*;
/**
* Implementation of gnome sort
diff --git a/Sorts/src/sort/QuickSort.java b/Sorts/QuickSort.java
similarity index 97%
rename from Sorts/src/sort/QuickSort.java
rename to Sorts/QuickSort.java
index 4159fc829..36b042c13 100644
--- a/Sorts/src/sort/QuickSort.java
+++ b/Sorts/QuickSort.java
@@ -1,6 +1,6 @@
-package sort;
+package Sorts;
-import static sort.SortUtils.*;
+import static Sorts.SortUtils.*;
/**
*
diff --git a/Sorts/src/sort/RadixSort.java b/Sorts/RadixSort.java
similarity index 98%
rename from Sorts/src/sort/RadixSort.java
rename to Sorts/RadixSort.java
index 0d1e69661..9fd1ab7b8 100644
--- a/Sorts/src/sort/RadixSort.java
+++ b/Sorts/RadixSort.java
@@ -1,4 +1,4 @@
-package sort;
+package Sorts;
import java.util.Arrays;
diff --git a/Sorts/src/sort/SelectionSort.java b/Sorts/SelectionSort.java
similarity index 87%
rename from Sorts/src/sort/SelectionSort.java
rename to Sorts/SelectionSort.java
index 960215a68..7ab599f94 100644
--- a/Sorts/src/sort/SelectionSort.java
+++ b/Sorts/SelectionSort.java
@@ -1,6 +1,4 @@
-package sort;
-
-import static sort.SortUtils.*;
+package Sorts;
/**
*
@@ -27,14 +25,14 @@ public class SelectionSort implements SortAlgorithm {
int min = i;
for (int j = i +1 ; j < n; j++) {
- if (less(arr[j], arr[min])) {
+ if (SortUtils.less(arr[j], arr[min])) {
min = j;
}
}
// Swapping if index of min is changed
if (min != i) {
- swap(arr, i , min);
+ SortUtils.swap(arr, i , min);
}
}
@@ -51,13 +49,13 @@ public class SelectionSort implements SortAlgorithm {
Integer[] sorted = selectionSort.sort(arr);
// Output => 1 4 6 9 12 23 54 78 231
- print(sorted);
+ SortUtils.print(sorted);
// String Input
String[] strings = {"c", "a", "e", "b","d"};
String[] sortedStrings = selectionSort.sort(strings);
//Output => a b c d e
- print(sortedStrings);
+ SortUtils.print(sortedStrings);
}
}
diff --git a/Sorts/src/sort/ShellSort.java b/Sorts/ShellSort.java
similarity index 94%
rename from Sorts/src/sort/ShellSort.java
rename to Sorts/ShellSort.java
index bafd19b14..31c2c6077 100644
--- a/Sorts/src/sort/ShellSort.java
+++ b/Sorts/ShellSort.java
@@ -1,6 +1,6 @@
-package sort;
+package Sorts;
-import static sort.SortUtils.*;
+import static Sorts.SortUtils.*;
/**
diff --git a/Sorts/src/sort/SortAlgorithm.java b/Sorts/SortAlgorithm.java
similarity index 98%
rename from Sorts/src/sort/SortAlgorithm.java
rename to Sorts/SortAlgorithm.java
index 46b1f58e1..e60041565 100644
--- a/Sorts/src/sort/SortAlgorithm.java
+++ b/Sorts/SortAlgorithm.java
@@ -1,4 +1,4 @@
-package sort;
+package Sorts;
import java.util.Arrays;
import java.util.List;
diff --git a/Sorts/src/sort/SortUtils.java b/Sorts/SortUtils.java
similarity index 99%
rename from Sorts/src/sort/SortUtils.java
rename to Sorts/SortUtils.java
index 8766e9d0e..b3392352b 100644
--- a/Sorts/src/sort/SortUtils.java
+++ b/Sorts/SortUtils.java
@@ -1,4 +1,4 @@
-package sort;
+package Sorts;
import java.util.Arrays;
import java.util.List;