假设一个顺序表l中所有元素为整数,将所有小于0的元素放在大于0的元素的前面。
void fun(Sqllist *&l)
{ int i=0,j=l->length-1;
while(i<j)
{ while(l->data[i]<0) i++;
while(l->data[j]>=0) j--;
if(i<j)
swap(l->data[i],l->data[j]);
}
}
该算法实现了一个功能,将一个顺序表中所有小于0的整数移到大于0的整数前面,通过双指针技巧完成。算法遍历列表,找到第一个大于等于0的元素和最后一个小于0的元素进行交换,直至两个指针相遇,完成数组的重新排列。
假设一个顺序表l中所有元素为整数,将所有小于0的元素放在大于0的元素的前面。
void fun(Sqllist *&l)
{ int i=0,j=l->length-1;
while(i<j)
{ while(l->data[i]<0) i++;
while(l->data[j]>=0) j--;
if(i<j)
swap(l->data[i],l->data[j]);
}
}
1万+
2211
768

被折叠的 条评论
为什么被折叠?