wang2679958237 2015-06-27 05:48 采纳率: 15.8%
浏览 1322

数据结构求大神帮忙注释,最好是每段

int sort(Student* list,int left,int right)
{
Student mid=list[left];
while(left {
for(;left list[left]=list[right];
for(;left=mid.score;left++);
list[right]=list[left];
}
list[left]=mid;
return left;
}
void quick_sort(Student*list,int left,int right)
{
if(left>=right)
return;
int mid;
mid=sort(list,left,right);
quick_sort(list,left,mid-1);
quick_sort(list,mid+1,right);
}

void merge(StudentList *result,Student *male,Student *female)
{
int i,num=0;
for(i=0;imannum;i++)
result->array[num++]=male[i];
for(i=0;iwomannum;i++)
result->array[num++]=female[i];
}

  • 写回答

1条回答 默认 最新

  • threenewbee 2015-06-27 05:59
    关注

    quick_sort用来快速排序,sort以最左边的元素作为参照,把数据分为两拨,mid为分拨后参照元素的位置。
    merge将女学生链表和男学生链表合并成一个完整的链表student。
    这些代码没有必要逐行解释,因为快速排序是一个标准的算法,书上都有,思路就是找一个参照元素,然后把比它大的移动到它的后面,这样把原始数据分为三部分
    比它小的 参照元素自己 比它大的。
    然后递归对前后这两堆再排序,直到每一堆都只有一个元素。

    评论

报告相同问题?