把所有的奇数移到偶数的前面
void new_sort(Sqlist *L){
int i,j;
i = 1, j = L->length;
while(i < j){
while(i < j && L->r[i].key % 2 != 0)
i++;
while(j > i && L->r[j].key % 2 == 0)
j--;
exchange(&L->r[i],&L->r[j]);
}
}
从前面找到一个奇数,从后面找到一个偶数,两个交换,当两个指针指向相同时,遍历结束。
虽然有三个while循环,但是复杂度只有O(n)。