已知顺序表A,在不改变顺序表中奇数号元素与偶数号元素相对位置的前提下,设计算法,将所有奇数号元素移到所有偶数号元素前。 根据设计思想,采用C或C++或Java语言描述算法,关键之处给出注释。

admin2019-08-15  48

问题 已知顺序表A,在不改变顺序表中奇数号元素与偶数号元素相对位置的前提下,设计算法,将所有奇数号元素移到所有偶数号元素前。
根据设计思想,采用C或C++或Java语言描述算法,关键之处给出注释。

选项

答案算法的设计如下: void Swap(ElemType A[ ],int n){ int i=n,v=1; //i为工作指针,初始假设n为奇数,v为“块”的大小 ElemType temp; //辅助变量 if(n%2==0)i=n—l; //若n为偶数,则令i为n一1 while(i>1){ //假设数组从1开始存放。当i=1时,气泡浮出水面 temp=A[i一1]; //将“块”前的偶数号元素暂存 for(int j=0;j<v;j++) //将大小为v的“块”整体向前平移 A[i—l+j]=A[i+j] //从前往后依次向前平移 A[i+v一1]=temp; //暂存的奇数号元素复制到平移后空出的位置 i一一:v++; //指针向前,块大小增1 }//while }

解析
转载请注明原文地址:https://jikaoti.com/ti/P3GjFFFM
0

相关试题推荐
最新回复(0)