Java第五天——数组

1.整一个数组a,是偶数在前,奇数在后

方法一:
新建一个数组b,查找数组a中的偶数和奇数,让其存于数组b中(偶数从前往后(0—-b.length-1),奇数从后往前(b.length-1到0))

import java.util.Arrays;
	public class find{
		public static void main(String[] args){
			int[] a={1,2,3,4,5,6,7,8,9,10,18,23};
			System.out.println(Arrays.toString(a));
			
			int[] m=Partition(a);
			System.out.println(Arrays.toString(m));
		}
		public static int[] Partition(int[] b){
			int[] c=new int[b.length];
				int j=0;
				int n=b.length-1;
			while(j<=n){
				for(int i=0;i<b.length;i++){
						
				    if(b[i]%2==0){
					c[j]=b[i];
					j++;
				    }
				    if(b[i]%2!=0){
					c[n]=b[i];
					n--;
				    }
				}
			}
			return c;
		}
	}
			

结果:
在这里插入图片描述
方法二:

	//[begin,end]是未判断的数	
	//[0,begin]偶数
	//[end,a.length-1]奇数

	import java.util.Arrays;
	public class find{
		public static void  main(String[] args){
		int[] a={1,2,3,4,5,6,7,8,9,10,11,13};
		 Partition(a);
			System.out.println(Arrays.toString(a));
		}
		public static void swap(int[] a,int i,int j){
		int t=a[i];
		a[i]=a[j];
		a[j]=t;
	}
		public static int[] Partition(int[] nums) {
		int begin = 0;
		int end = nums.length - 1;
		
		while (begin < end) {
			if((begin < end) && (nums[begin] % 2 == 0)) {
				begin++;
			}
			
			if ((begin < end) && (nums[end] % 2 != 0)){
				end--;
			}
			
			swap(nums, begin, end);
		}
		
		return nums;
	}
	}	

结果:
在这里插入图片描述
方法三:

//[0,d]偶数
		//[d,i]奇数
		//[i,a.length-1]未判断
	
	import java.util.Arrays;
	public class find{
		public static void  main(String[] args){
			int[] a={1,2,3,4,5,6,7,8,9};
			Partition(a);
			System.out.println(Arrays.toString(a));
		}
		public static int[] Partition(int[] b){
			int i=0;
			int d=0;
			for( i=0;i<b.length;i++){
				if(b[i]%2==0){
					swap(b,i,d);
					d++;
				}
			}
			return b;
		}
		public static void swap(int[] a,int i,int j){
		int t=a[i];
		a[i]=a[j];
		a[j]=t;
	
	}
	}

结果:
在这里插入图片描述
2.去掉一个最大值,去掉一个最小值,求平均值

public class find{
	public static double average(int[] a){
		double  s=0;
		int max=a[0];
		int min=a[0];
		for(int i=0;i<a.length;i++){
			s+=a[i];
			if(a[i]>max){
				max=a[i];
			}
			if(a[i]<min){
				min=a[i];
			}	
	}
	s=s-max-min;
	return s/(a.length-2);
	}
	public static void main(String[] args){
		int[] a={4,6,9,8,2,3};
		System.out.println(average(a));
	}
}

结果:
在这里插入图片描述
3.数组排序

import java.util.Arrays;
	public class find{
	public static void main(String[] args) {
		int[] a = { 1, 2, 3, 4, 5, 6, 7 };
		int[] b = { 7, 6, 5, 4, 3, 2, 1 };
		int[] c = { 3, 5, 2, 4, 1, 7, 6 };
		int[] d = { 3, 3, 3, 3, 3, 3, 3 };
		
		testBubbleSort(a);
		testBubbleSort(b);
		testBubbleSort(c);
		testBubbleSort(d);
		System.out.println(Arrays.toString(a));
		System.out.println(Arrays.toString(b));
		System.out.println(Arrays.toString(c));
		System.out.println(Arrays.toString(d));
		
	}
		
		
	public static void swap(int[] a,int i,int j){
		int t=a[i];
		a[i]=a[j];
		a[j]=t;
	}
	public static int[] testBubbleSort(int[] a){
		for(int i=0;i<a.length;i++){
			for(int j=1;j<a.length-i;j++){
			if(a[j-1]>a[j]){
				swap(a,j-1,j);
			}
			}
		}
		return a;
	}
}

结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值