java实现希尔排序完整代码
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; } }
性能分析时间复杂度最好情况:数组有序时时间复杂度是O(N)最快情况:时间复杂度是O(N^2),很难构造出实例平均情况:时间复杂度是O(N^1.3)空间复杂度:O(1)稳定性:不稳定
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。