知识大全 数据结构考研分类复习真题 第五章 答案[46]
Posted 元素
篇首语:时危见臣节,世乱识忠良。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构考研分类复习真题 第五章 答案[46]相关的知识,希望对你有一定的参考价值。
[题目分析]本题中数组A的相邻两段分别有序 要求将两段合并为一段有序 由于要求附加空间为O( ) 所以将前段最后一个元素与后段第一个元素比较 若正序 则算法结束 若逆序则交换 并将前段的最后一个元素插入到后段中 使后段有序 重复以上过程直到正序为止
void adjust(int A[] int n) //数组A[n k+ n k]和[n k+ n]中元素分别升序 算法使A[n k+ n]升序 i=n k;j=n k+ ; while(A[i]>A[j]) x=A[i]; A[i]=A[j]; //值小者左移 值大者暂存于x k=j+ ; while (k<n && x>A[k]) A[k ]=A[k++]; //调整后段有序 A[k ]=x; i ; j ; //修改前段最后元素和后段第一元素的指针 算法结束
[算法讨论]最佳情况出现在数组第二段[n k+ n]中值最小元素A[n k+ ]大于等于第一段值最大元素A[n k] 只比较一次无须交换 最差情况出现在第一段的最小值大于第二段的最大值 两段数据间发生了k次交换 而且每次段交换都在段内发生了平均(k )次交换 时间复杂度为O(n )
cha138/Article/program/sjjg/201311/23028相关参考
第五章 数组和广义表答案 一选择题 BLJCICBBAHCEAFBEABBBBBABBACDCDFCDCACA 二判断题 ×√√×××√××××√√√ 部分答案解释如下 错误
.这是一个递归调用问题运行结果为DBHEAIFJCKGL ()FOR循环中每次执行PerfectShuffle(AN)和CompareExchange(AN)的结果 第次A[]=[] A[]
.() () ()i=j=即A[]  
()略 ()求广义表原子个数的递归模型如下 f(p)= PROCNumber(p:glist;VARn:integer) VARm:integer; n:=; IFp<>N
深度为长度为 ()略 ()表的长度为深度为 ()head(tail(head(head(head(tail(tail(tail(tail(A))))))))) 共享结构广义表A=(((bc
Head(Tail(Head(Head(L)))) Head(Head(Head(Tail(Head(Tail(L)))))) 类似本题的另外叙述的几个题解答如下 ()head(head(t
head(tail(head(tail(H)))) (b) (xyz) (de) GetHead(GetHead(GetTail(L))) 本算法中首先数组b中元素以逆置顺序放入d数组中
.每个元素个二进制位主存字长位故每个元素占个字长行下标可平移至到 () () ()s+ ()s+ . 公式 +L(
.错误有以下几处 ()过程参数没有类型说明()出错条件判断缺少OR(i+k>last+) ()删除元素时FOR循环应正向不应用反向DOWNTO()count没定义 低效体现在两处 (
公式LOC(aijk)=LOC(a)+[v*v*(ic)+v*(jc)+(kc)]*l(l为每个元素所占单元数) 第行第列 ()()() i(i)/+j(<=ij<