美文网首页
2.7希尔排序

2.7希尔排序

作者: 蜗牛滴追逐 | 来源:发表于2018-09-20 09:37 被阅读0次

2.7希尔排序
时间复杂度o(n*logn)

希尔排序习题.png

思路:0~N-1 个数
1.当步长为3的时候,从第四位的数字开始,向前跳三位,和第一位的数字比较,如果比位置1的数小,就换到位置1跳向前3位进行比较,但已经越界了,交换过程停止
2.如果比向前跳3位的数值比较大,则 直接停止交换的过程,进行下一个数的调整
......
3.当步长为3的最后一个数调整后,可能进入步长为2的调整,但最后都以步长为1结束

希尔排序越劣的话,越 接近于o(n*2)

package chenzp;

//希尔排序
import java.util.*;

public class barrier2_8 {

public int[] barrier(int[] A, int n) {
    if(A==null||A.length<2) return A;
    
    int feet=A.length/2;
    int index=0;
    while(feet>0){
        for (int i = feet; i < A.length; i++) { 
            index=i;
            for (int j = i-feet; j>=0; j=j-feet) {
                if(A[j+feet]<A[j])swap(A,j+feet,j);
                else break;
            }           
        }   
        feet=feet/2;
    }   
    return A;
}

public static void swap(int[] arr,int index1,int index2){
    int temp=arr[index1];
    arr[index1]=arr[index2];
    arr[index2]=temp;
}


public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    int a[] = new int[n];
    for (int i = 0; i < n; i++) {
        a[i] = sc.nextInt();
    }

    barrier2_5.barrier(a, n);

    for (int i : a) {
        System.out.println(i);
    }
}

}}

相关文章

  • 2.7希尔排序

    2.7希尔排序时间复杂度o(n*logn) 思路:0~N-1 个数1.当步长为3的时候,从第四位的数字开始,向前...

  • 2.7 希尔排序的性能分析

    Chapter2: 时间复杂度分析、递归、查找与排序 7. 希尔排序的性能分析 希尔排序的性能无法准确量化,跟输入...

  • 排序算法(二)之希尔排序

    图解排序算法(二)之希尔排序 希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也...

  • 07-希尔排序(Shell Sort)

    希尔排序(Shell Sort) 希尔排序是唐纳德·希尔(Donald Shell)在0959年提出的。希尔排序与...

  • 排序-希尔排序(分治)

    希尔排序 希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。 希尔排序...

  • swift经典算法-希尔排序

    希尔排序 希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。 希尔排序...

  • 排序算法④——希尔排序

    希尔排序 希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。 希尔排序...

  • 排序算法-希尔排序(Java实现)

    希尔排序 希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是...

  • 说说算法那些事-希尔排序

    希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,希尔排序法又称...

  • 希尔排序学习

    希尔排序希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。希尔排序是基...

网友评论

      本文标题:2.7希尔排序

      本文链接:https://www.haomeiwen.com/subject/jyrgnftx.html