要求:对顺序表L中所有小于表头元素的整数放在前半部分,大于表头元素的整数放在后半部分
算法思想:快速排序
void quicksort(SqList &L)
{
int i,j;
i = 0,j = L.length-1;//分别指向表头和表尾
int temp = L.data[0];
while(i<j)
{
while(i<j && L.data[j]>=temp)//从右往左走,遇到比temp小的元素时停止
j--;
if(i<j)
{
L.data[i] = L.data[j];
i++;
}
while(i<j && L.data[i]<=temp)//从左往右走,遇到比temp大的元素时停止
i++;
if(i<j)
{
L.data[j] = L.data[i];
j--;
}
}
L.data[i] = temp;
}