计算机考研 数据结构 关于算法题的问题

来源:百度知道 编辑:UC知道 时间:2024/05/12 04:25:34
我是跨专业考的。问个关于算法题的问题
写算法是我总喜欢在算法中调用自己定义的函数,然后在下面写上自定义函数,这样子写老师会怎么给分。
例如:下面是一个直接插入排序算法,我在里面调用了SearchPos()和
Move()两个自定义函数。书上就是一整段。
如果要写成书上的那个样子,我根本写不出来。怎么办?
void InsertSort(DataType a[],int left,int right)
{DataType temp;
int i,j;
for(i=left+1;i<=right;i++)
(temp=a[i];
j=SearchPos(a,left,right,i);
if(j!=i) Move(a,j,i-1);
a[j]=temp;
}
}
int SearchPos(DataType a[],int left,int right,int i)
{for(int j=i-1;k<=left;k--)
if(a[i]>=a[k]) return k+1;
return left;
}
void Move(DataType a[],int i,int j)
{for (int k=0;k<=i-j;k++)
a[i-k+1]=a[i-k];
}

我觉得考试时写算法注重的是算法思想。你怎么写都可以,不过最好加上注释!这样才能清晰地体现出你的思路来。
代码模块化当然很好,但是模块的粒度应该不要太小。插入排序思想不复杂啊,就两步:先找到位置,然后移动数据。
我觉得你按书上写的过程来就可以,没必要单列两个模块。