Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
27 changes: 27 additions & 0 deletions src/main/java/com/sorts/InsertionSort.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package src.main.java.com.sorts;

public class InsertionSort {

/**
* This method implements the Generic Insertion Sort
* Sorts the array in increasing order
*
* @param array The array to be sorted
**/
public <T extends Comparable<T>> T[] sort(T[] array) {
for (int j = 1; j < array.length; j++) {

// Picking up the key(Card)
T key = array[j];
int i = j - 1;

while (i >= 0 && SortUtils.less(key, array[i])) {
array[i + 1] = array[i];
i--;
}
// Placing the key (Card) at its correct position in the sorted subarray
array[i + 1] = key;
}
return array;
}
}
7 changes: 1 addition & 6 deletions src/test/java/com/sorts/BubbleSortTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,18 @@
import org.junit.Test;
import src.main.java.com.sorts.BubbleSort;

import java.util.Arrays;

public class BubbleSortTest {

@Test
public void bubbleSortTest() {
BubbleSort bubbleSort = new BubbleSort();

Integer[] unsortedInt = new Integer[]{0, 5, 9, 2, 1, 3, 4, 8, 6, 7};
Integer[] sortedInt = new Integer[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
System.out.println(Arrays.toString(bubbleSort.sort(unsortedInt)));

Assert.assertArrayEquals(sortedInt, bubbleSort.sort(unsortedInt));

Character[] unsortedChar = new Character[]{'f', 'h', 'c', 'a', 'b', 'd', 'g', 'e'};
Character[] sortedChar = new Character[]{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'};
System.out.println(Arrays.toString(bubbleSort.sort(unsortedChar)));

Assert.assertArrayEquals(sortedChar, bubbleSort.sort(unsortedChar));

}
Expand Down
7 changes: 1 addition & 6 deletions src/test/java/com/sorts/HeapSortTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,18 @@
import org.junit.Test;
import src.main.java.com.sorts.HeapSort;

import java.util.Arrays;

public class HeapSortTest {

@Test
public void heapSortTest() {
HeapSort heapSort = new HeapSort();

Integer[] unsortedInt = new Integer[]{0, 5, 9, 2, 1, 3, 4, 8, 6, 7};
Integer[] sortedInt = new Integer[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
System.out.println(Arrays.toString(heapSort.sort(unsortedInt)));

Assert.assertArrayEquals(sortedInt, heapSort.sort(unsortedInt));

Character[] unsortedChar = new Character[]{'f', 'h', 'c', 'a', 'b', 'd', 'g', 'e'};
Character[] sortedChar = new Character[]{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'};
System.out.println(Arrays.toString(heapSort.sort(unsortedChar)));

Assert.assertArrayEquals(sortedChar, heapSort.sort(unsortedChar));
}
}
22 changes: 22 additions & 0 deletions src/test/java/com/sorts/InsertionSortTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package src.test.java.com.sorts;


import org.junit.Assert;
import org.junit.Test;
import src.main.java.com.sorts.InsertionSort;

public class InsertionSortTest {

@Test
public void insertionSortTest() {
InsertionSort insertionSort = new InsertionSort();

Integer[] unsortedInt = new Integer[]{0, 5, 9, 2, 1, 3, 4, 8, 6, 7};
Integer[] sortedInt = new Integer[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
Assert.assertArrayEquals(sortedInt, insertionSort.sort(unsortedInt));

Character[] unsortedChar = new Character[]{'f', 'h', 'c', 'a', 'b', 'd', 'g', 'e'};
Character[] sortedChar = new Character[]{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'};
Assert.assertArrayEquals(sortedChar, insertionSort.sort(unsortedChar));
}
}
7 changes: 1 addition & 6 deletions src/test/java/com/sorts/QuickSortTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,18 @@
import org.junit.Test;
import src.main.java.com.sorts.QuickSort;

import java.util.Arrays;

public class QuickSortTest {

@Test
public void quickSortTest() {
QuickSort quickSort = new QuickSort();

Integer[] unsortedInt = new Integer[]{0, 5, 9, 2, 1, 3, 4, 8, 6, 7};
Integer[] sortedInt = new Integer[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
System.out.println(Arrays.toString(quickSort.sort(unsortedInt)));

Assert.assertArrayEquals(sortedInt, quickSort.sort(unsortedInt));

Character[] unsortedChar = new Character[]{'f', 'h', 'c', 'a', 'b', 'd', 'g', 'e'};
Character[] sortedChar = new Character[]{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'};
System.out.println(Arrays.toString(quickSort.sort(unsortedChar)));

Assert.assertArrayEquals(sortedChar, quickSort.sort(unsortedChar));
}
}
7 changes: 1 addition & 6 deletions src/test/java/com/sorts/SelectionSortTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,18 @@
import org.junit.Test;
import src.main.java.com.sorts.SelectionSort;

import java.util.Arrays;

public class SelectionSortTest {

@Test
public void selectionSortTest() {
SelectionSort selectionSort = new SelectionSort();

Integer[] unsortedInt = new Integer[]{0, 5, 9, 2, 1, 3, 4, 8, 6, 7};
Integer[] sortedInt = new Integer[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
System.out.println(Arrays.toString(selectionSort.sort(unsortedInt)));

Assert.assertArrayEquals(sortedInt, selectionSort.sort(unsortedInt));

Character[] unsortedChar = new Character[]{'f', 'h', 'c', 'a', 'b', 'd', 'g', 'e'};
Character[] sortedChar = new Character[]{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'};
System.out.println(Arrays.toString(selectionSort.sort(unsortedChar)));

Assert.assertArrayEquals(sortedChar, selectionSort.sort(unsortedChar));
}
}
7 changes: 1 addition & 6 deletions src/test/java/com/sorts/ShellSortTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,18 @@
import org.junit.Test;
import src.main.java.com.sorts.ShellSort;

import java.util.Arrays;

public class ShellSortTest {

@Test
public void shellSortTest() {
ShellSort shellSort = new ShellSort();

Integer[] unsortedInt = new Integer[]{0, 5, 9, 2, 1, 3, 4, 8, 6, 7};
Integer[] sortedInt = new Integer[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
System.out.println(Arrays.toString(shellSort.sort(unsortedInt)));

Assert.assertArrayEquals(sortedInt, shellSort.sort(unsortedInt));

Character[] unsortedChar = new Character[]{'f', 'h', 'c', 'a', 'b', 'd', 'g', 'e'};
Character[] sortedChar = new Character[]{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'};
System.out.println(Arrays.toString(shellSort.sort(unsortedChar)));

Assert.assertArrayEquals(sortedChar, shellSort.sort(unsortedChar));
}
}