public void shellSort(int[] array) {
int gap = array.length;
while(gap > 1) {
insertSortGap(array, gap);
//gap的缩小方式决定了性能提升的程度
gap = gap / 3 + 1;
}
insertSortGap(array, 1);
}
private void insertSortGap(int[] array, int gap) {
for(int i = 0; i < array.length; i++) {
int tmp = array[i];
int j = i - gap;
for(;j > 0 && array[j] > tmp; j -= gap) {
array[j + gap] = array[j];
}
array[j + gap] = tmp;
}
}
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。