题目:对一个整型数组中的数字进行分类排序: 使得负数都靠左端,正数都靠右端,0在中部。注意问题的特点是:负数区域和正数区域内并不要求有序。
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
int [] arr={25,18,-2,0,16,-5,33,21,0,19,-16,25,-3,0};
int len=arr.length;
sort(arr, len);
show(arr, len);
}
public static void sort(int [] arr,int len ){
int p=0;
int left=0;
int right=len-1;
while(p<=right){
if(arr[p]<0){
int temp=arr[left];
arr[left]=arr[p];
arr[p]=temp;
left++;
p++;
}else if(arr[p]>0){
int temp=arr[right];
arr[right]=arr[p];
arr[p]=temp;
right--;
}else{
p++;
}
}
}
public static void show(int [] arr,int len){
for(int i=0;i<len;i++){
System.out.print(arr[i]+" ");
}
}
}