知识大全 数据结构考研分类复习真题 第五章 答案[39]
Posted 知
篇首语:一分耕耘,一分收获。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构考研分类复习真题 第五章 答案[39]相关的知识,希望对你有一定的参考价值。
[题目分析]本题属于排序问题 只是排出正负 不排出大小 可在数组首尾设两个指针i和j i自小至大搜索到负数停止 j自大至小搜索到正数停止 然后i和j所指数据交换 继续以上过程 直到 i=j为止
void Arrange(int A[] int n) //n个整数存于数组A中 本算法将数组中所有正数排在所有负数的前面 int i= j=n x; //用类C编写 数组下标从 开始 while(i<j) while(i<j && A[i]> ) i++; while(i<j && A[j]< ) j ; if(i<j) x=A[i]; A[i++]=A[j]; A[j ]=x; //交换A[i] 与A[j] //算法Arrange结束
[算法讨论]对数组中元素各比较一次 比较次数为n 最佳情况(已排好 正数在前 负数在后)不发生交换 最差情况(负数均在正数前面)发生n/ 次交换 用类c编写 数组界偶是 n 空间复杂度为O( )
类似本题的其它题的解答:
( )与上面 题同 因要求空间复杂度也是O(n) 可另设一数组C 对A数组从左到右扫描 小于零的数在C中从左(低下标)到右(高下标)存 大于等于零的数在C中从右到左存
( )将 题中判定正数(A[i]> )改为判偶数(A[i]% == ) 将判负数(A[j]< )改为(A[j]% != )
( )同( ) 只是要求奇数排在偶数之前
( )利用快速排序思想 进行一趟划分
int Partition(int A[] int n) //将n个元素的数组A调整为左右两部分 且左边所有元素小于右边所有元素 返回分界位置 int i= j=n rp=A[ ]; //设数组元素为整型 while(i<j) while(i<j &&A[j]>=rp) j ; while(i<j &&A[i]<=rp) i++; if(i<j) x=A[i];A[i]=A[j]; A[j]=x; A[i]=rp; return(i); //分界元素 // Partition
cha138/Article/program/sjjg/201311/23021相关参考
第五章 数组和广义表答案 一选择题 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<