首页 > 试题广场 >

下述两种对下面所编写的希尔排序例程的修改影响最坏情形的运行时

[问答题]
下述两种对下面所编写的希尔排序例程的修改影响最坏情形的运行时间吗?
a. 如果Increment是偶数,则在第2行前从Increment减1.
b. 如果Increment是偶数,则在第2行前往Increment加1.

        void
        Shellsort(ElementType A[], int N)
        {
            int i, j, Increment;
            ElementType Tmp;
/* 1*/    for(Increment = N/2; Increment>0; Increment /=2)
/* 2*/          for(i=Increment; i<N;i++)
                {
/* 3*/                Tmp = A[i];
/* 4*/                 for(j=i;j>=Increment;j-=Increment)
/* 5*/                          if(Tmp < A[j-Increment])
/* 6*/                               A[j]= A[j-Increment];
                                  else
/* 7*/                                break;
/* 8*/                  A[j] = Tmp;
                 }
}

这道题你会答吗?花几分钟告诉大家答案吧!