线性表中顺序表,以一个元素为基准将所有小于或等于它的元素移到该基准后面


void partition2(Sqlist *&L)
{int i=0,j=L->length-1;
ElemType base =L->data[0];
while(i<j)
{
while(j>i&&L->data[j]>base)
j--;
L->data[i]=L->data[j];
while(i<j&&L->data[i]<=base;
}
L->data[i]=base;
}

书上的代码如上,但是我觉得data[i]和data[j]会彼此覆盖导致data[j]值不变,而且j--为什么要在前面啊?不应该放在下面吗?

img

img


img

函数需要实现什么功能?

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^