### Question:
LearnSort { public static int[] shellSort(int[] array) { int len = array.length; for (int gap = len >> 1; gap != 0; gap >>= 1) { for (int i = 0; i < gap; i++) { for (int j = i + gap; j < len; j += gap) { int index = j - gap; int temp = array[j]; for (; index >= 0 && temp < array[index]; index -= gap) { array[index + gap] = array[index]; } array[index + gap] = temp; } } } return array; }  static int[] insertSort(int[] array); static int[] shellSort(int[] array); static int[] selectionSort(int[] array); static int[] heapSort(int[] array); static int[] bubbleSort(@NotNull int[] array); static int[] quickSort(@NotNull int[] array); static int[] mergingSort(int[] array); static int[] radixSort(@NotNull int[] arr); final static int[] originalArray; }### Answer:
@Test public void testShellSort() throws Exception { Assert.assertThat(resultArray, Matchers.equalTo(LearnSort.shellSort(originalArray))); }