import java.util.*;
public class 乱七八糟的测试 {
public static void main(String[] args) {//将一个数组前半部分全部放奇数,后半部分放偶数
int []a=sz(11,10);
System.out.println("原数组是"+Arrays.toString(a));
int b[]=text2(a);
System.out.println("排序过后"+Arrays.toString(b));
}
//生成指定长度的数组
public static int[] sz(int a,int b) {
int zz[]=new int[a];
Random x=new Random();
for (int i = 0; i < zz.length; i++) {
int n=x.nextInt(b);
zz[i]=n;
}
return zz;
}
public static int[] text2(int[] a) {
int[]b=new int[a.length];
int m=0;
int n=a.length-1;
int x=0;
while(m<a.length-1) {
if(a[m]%2==0) {
b[x]=a[m];
m++;
x++;
}else {
b[n]=a[m];
n--;
m++;
}
}
return b;
}
}
解法利用的是快速排序的思想:
1,将n个元素分成n/2个元素的子序列。
2,两两相比写入数组。(比如技术从0到中间值,偶数从中间值到末尾)