public class ShellSort {
java.util.ArrayList<Integer> tmp;
ShellSort(int[] array)
{
tmp = new java.util.ArrayList<Integer>();
for (int i: array)
tmp.add(i);
}
private int[] array(java.util.List<Integer> from)
{
int[] erg = new int[from.size()];
for (int i = 0; i < from.size(); i++)
{
erg[i] = from.get(i);
}
return erg;
}
int[] shellSort()
{
return array(sort(tmp));
}
private java.util.ArrayList<Integer> sort(java.util.List<Integer> range)
{
java.util.ArrayList<Integer> erg = new java.util.ArrayList<Integer>();
int s = range.size();
if (s < 2)
return new java.util.ArrayList<Integer>(range);
int next = 0, next2 = 0;
for (int i = 0; i < 3; i++)
{
next = next2;
next2 = (next+s/3 < s)? (int)Math.ceil(next+s/3.) : s;
erg.addAll(sort(range.subList(next, next2)));
}
InsertSort sorter = new InsertSort(array(erg));
return sorter.insertSortAList();
}
}Add a code snippet to your website: www.paste.org