题目:
代码实现:
#includeusing namespace std; #define MAXSIZE 100 #define ElemType int typedef struct { ElemType *elem; int length; }SqList; bool InitList(SqList &L)//构造空顺序表 { L.elem=new ElemType[MAXSIZE]; if(!L.elem)exit(EOVERFLOW); L.length=0; return true; } //本题解答.................................... void exchange(int *a,int *b) { int k; k=*a; *a=*b; *b=k; } void ListChange(SqList &L) { int standard=60; int low=0,high=L.length-1; while(low<=high) { if(L.elem[low]<60&&L.elem[high]>=60) exchange(&L.elem[low],&L.elem[high]); if(L.elem[low]>=60)low++; if(L.elem[high]<60)high--; } } //........................................ void ShowList(SqList &L)//展示结果 { printf("n输出调整之后的学生成绩:n"); for(int i=0;i 算法思想:该算法的思想稍微类似快速排序,也就是将60设置为基准,然后从顺序表的头和尾部同时出发,在相对而行的过程中完成交换,直到low指针和high指针碰头。



