/**
* author Jia Xiaoping
* author Alex Rudniy
* Shell sort
*/
class ShellSortAlgorithm extends SortAlgorithm {
void sort(int a[]) {
int i, j, increment, temp;
increment = 3;
while (increment > 0) {
for (i=0; i < a.length; i++) {
j = i;
temp = a[i];
while ((j >= increment) && (a[j-increment] > temp)) {
a[j] = a[j - increment];
j = j - increment;
}
a[j] = temp;
pause();
}
if (increment/2 != 0)
increment = increment/2;
else if (increment == 1)
increment = 0;
else
increment = 1;
}
}
public ShellSortAlgorithm(AlgorithmAnimator animator) {
super(animator);
}
}