/**
* @param arr
*/
public void shellSort(int[] arr) {
int len = arr.length;
int step = len >> 1;
while (step > 0) {
for (int i = 0; i < step; i++) {
for (int j = i + step; j < len; j += step) {
if (arr[j] < arr[j - step]) {
int tmp = arr[j];
int index = j - step;
while (index >= 0 && arr[index] > tmp) {
arr[index + step] = arr[index];
index -= step;
}
arr[index + step] = tmp;
}
}
}
step >>= 1;
}
}
* @param arr
*/
public void shellSort(int[] arr) {
int len = arr.length;
int step = len >> 1;
while (step > 0) {
for (int i = 0; i < step; i++) {
for (int j = i + step; j < len; j += step) {
if (arr[j] < arr[j - step]) {
int tmp = arr[j];
int index = j - step;
while (index >= 0 && arr[index] > tmp) {
arr[index + step] = arr[index];
index -= step;
}
arr[index + step] = tmp;
}
}
}
step >>= 1;
}
}