标签:
.//有一个整数数组,有负数和整数,用一个方法把正负数分开,要求空间复杂度是O(1),时间复杂度是:O(N)
/**
* 分数组
*/
public static void awaylist(){
int a[] = new int[]{5,-2,4,6,-1,3,-9,-8};
int start = 0;
int temp = 0;
for(int i=0;i<a.length;i++){
if(a[i]>0&&start==0){
continue;
}else if(a[i]<0&&start==0){
start = i;
}else if(a[i]>0&&start!=0){
//无论怎么样,调换后,start的下个位置一定小于0;所以start++。
temp = a[start];
a[start] = a[i];
a[i] = temp;
if(i>start){
start++;
}
}
}
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
标签:
原文地址:http://my.oschina.net/u/1463920/blog/376079