Skip to content

Instantly share code, notes, and snippets.

@agustarc
Created December 21, 2016 19:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save agustarc/06b9ba2f058cd37ce2a50aa9bf6572f6 to your computer and use it in GitHub Desktop.
Save agustarc/06b9ba2f058cd37ce2a50aa9bf6572f6 to your computer and use it in GitHub Desktop.
public class ShellSort {
public static void shellSort(int[] arr) {
final int length = arr.length;
int interval = length / 2;
while (interval >= 1) {
for (int i = 0; i < length; i++) {
intervalSort(arr, i, length - 1, interval);
}
interval /= 2;
}
}
private static void intervalSort(int[] arr, int begin, int end, int interval) {
for (int i = begin + interval; i <= end; i += interval) {
final int key = arr[i];
int position = i;
while (position >= interval && key < arr[position - interval]) {
arr[position] = arr[position - interval];
position -= interval;
}
arr[position] = key;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment