调增数组顺序使所有奇数位于偶数前面(归并思想实现)

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到中间值,偶数从中间值到末尾)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值