如何建单位网站,WordPress如何发布内容到页面上,天津做网站认准津坤科技,响应式html5网页模板属性 1. 希尔排序是对直接插入排序的优化。 2. 当gap 1时都是预排序#xff0c;目的是让数组更接近于有序。当gap 1时#xff0c;数组已经接近有序的了#xff0c;这样就会很 快。这样整体而言#xff0c;可以达到优化的效果。我们实现后可以进行性能测试的对比。 3.…属性 1. 希尔排序是对直接插入排序的优化。 2. 当gap 1时都是预排序目的是让数组更接近于有序。当gap 1时数组已经接近有序的了这样就会很 快。这样整体而言可以达到优化的效果。我们实现后可以进行性能测试的对比。 3. 希尔排序的时间复杂度不好计算因为gap的取值方法很多导致很难去计算因此在好些树中给出的希尔排 序的时间复杂度都不固定 4. 稳定性不稳定 代码及其注释
public class ShellSort {//希尔排序实际上就是分多个组进行多次的插入排序前几次插入排序都只是为了让数据更加有序最后一次排序才是真正的排序数据public static void shellSort1(int[]arr){//首先要获得此次进行插入排序时同一组数之间的间隙//间隙的计算是很讲究的但这里就直接用数组长度的二分之一作为间隙之后再依次取二分之一直到间隙为1//间隙为1时才是真正的对数组进行排序int gaparr.length/2;while (gap1){shell1(arr,gap);gapgap/2;}}//传入要排序的数组以及在进行插入排序时同一组数据在数组之间的间隙进行插入排序//shell的代码其实就是根据间隙gap对插入排序进行一些修改private static void shell1(int[]arr,int gap){for(int igap;iarr.length;i){int tmparr[i];int ji-gap;for(;j0;j-gap){if(arr[j]tmp){arr[jgap]arr[j];}else {break;}}arr[jgap]tmp;}}
}