设A[1…100]是一个记录构成的数组,B[1…100)]是一个整数数组,其值介于1至100之间,现要求按B[1…100]的内容调整A中记录的次序,比如当B[1]=11时,则要求将A[1]的内容调整到A[11]中去。规定可使用的附加空间为O(1)。

admin2014-12-25  35

问题 设A[1…100]是一个记录构成的数组,B[1…100)]是一个整数数组,其值介于1至100之间,现要求按B[1…100]的内容调整A中记录的次序,比如当B[1]=11时,则要求将A[1]的内容调整到A[11]中去。规定可使用的附加空间为O(1)。

选项

答案 void ChangeElement(ElemTypeA[],int B[],int n) { /*按数组B中的值,调整数组A中的内容*/ i=1; while(i
解析 由题目可知,由于辅助空间为O(1),要想使数组A中的内容调整成符合题目要求的内容,可按数组B中的值调整数组A中的内容。若B=i,则A中的内容保持不变;若B=k,则将A与A[k]的内容交换,并调整B的值,直至B=i为止。算法描述如下。
转载请注明原文地址:https://kaotiyun.com/show/V4Vx777K
0

最新回复(0)