数据结构课程设计
}
for(j = i-1; j>=high+1;--j){
*(data+j+1) = *(data+j);
(*p_movetime)++; }
}
}
*(data+high+1) = *(data); (*p_movetime)++;
3.3 二路插入排序
二路插入排序是在折半插入排序的基础上再改进之,其目的是减少排序过程中移动记录的次数,但为此需要n个记录的辅助空间。
算法如下:
void TwoWaySort(int *data,long *p_movetime ,long *p_comparetime){
int amount;
int first,final,i,j; //first和final分别指示有序序列中的第一
个记录和最后一个记录在d中的位置;
int d[33000];
*p_movetime = *p_comparetime = 0; amount = *data;
d[1] = *(data+1); first = 1; final = 1;
for(i=2; i<=amount; i++) {
5