将正负数分开算法

一个线性表的元素为正数或负数。设计一算法,将正负数分开前半是负数 。不要求排序 ,但要求交换次数最少。
那个帮用快速排序法做下 谢谢了

很明显就是用0作为快速排序中的一次划分的分界值

#include <stdio.h>
const int n=10;
int a[]={-1,9,-2,3,-3,4,-4,7,-9,5};
main()
{
int i,j;
for (i=-1,j=0;j<n;j++)
if (a[j]<0)
{
int temp;
i++;
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
for (i=0;i<n;i++) printf("%d ",a[i]);
putchar('\n');
}
温馨提示:答案为网友推荐,仅供参考
相似回答