#include <stdio.h>
void partSort(int arr[],int l,int r)
{
int p=l,i=l,t,cnt=0;
printf("\n负数调在前\n");
for(;i<=r;i++)
{
if(arr[i]<0)
{
t=arr[i];arr[i]=arr[p];arr[p]=t;
p++;
}
} //p停止在第一个非负数上面;
for(i=l;i<=r;i++)
printf("%6d",arr[i]);
printf("\n");
while(arr[p]==0)//过滤掉零
p++;
printf("把零调在正数前\n");
for(i=r;i>=p;i--)
if(arr[i]==0)
{
t=arr[i];arr[i]=arr[p];arr[p]=t;
while(arr[p]==0)//过滤掉零
p++;
cnt++;
}
for(i=l;i<=r;i++)
printf("%6d",arr[i]);
printf("\n");
}
void main()
{
int arr[]={3,-1,2,0,-3,8,9,-4,0,2};
printf("原始数据\n");
for(int i=0;i<=9;i++)
printf("%6d",arr[i]);
partSort(arr,0,9);
}