Java基础知识复习(四)-- 对二维数组排序+求质数的个数

1.练习-二维数组排序

首先定义一个5X8的二维数组,然后使用随机数填充满。
借助Arrays的方法对二维数组进行排序。
参考思路:
先把二维数组使用System.arraycopy进行数组复制到一个一维数组
然后使用sort进行排序
最后再复制回到二维数组。

package review3;

import java.util.Arrays;
import java.util.Random;

public class Text6 {

	public static void main(String[] args) {
		int two[][] = new int[5][8];
		int one[] = new int[40]; 
		
		System.out.println("初始化二维数组:");
		//用10~99的随机数初始化二维数组
		for(int i = 0;i < 5; i++){
			for(int j = 0;j < 8; j++){
				two[i][j] = new Random().nextInt(90)+10;
				System.out.print(two[i][j]+"   ");
			}
			System.out.println();
		}
		//将二维数组转为一维数组
		for(int i = 0;i < 5; i++){
			System.arraycopy(two[i], 0, one, 8*i, 8);
			
		}
		//对一维数组进行排序
        Arrays.sort(one);
	//	System.out.println(Arrays.toString(one));
		
        //将排序后的一维数组转为二维数组
		for(int i = 0;i < 5; i++){
			two[i] = Arrays.copyOfRange(one, 8*i, 8*(i+1));
		}
		//打印排序后的二维数组
		System.out.println("打印排序后的二维数组:");
		for(int i = 0;i < 5; i++){
			for(int j = 0;j < 8; j++){			
				System.out.print(two[i][j]+"   ");
			}
			System.out.println();
		}
	}

}

2.寻找一千万以内的质数个数

质数概念: 只能被1和自己整除的数
举例:
5只能被 1和5整除,所以是质数
8可以被2整除,所以不是质数

package review3;

public class Test7 {
  
	    public static void main(String[] args) {
	    	int sum = 0;
	    	int max = 1000*1000;
	    	
	    	for(int i=2; i<max; i++) {
	    		if(isPrime(i)) {
	    			sum++;	    			
	    		}	    		
	    	}
	    	System.out.println("一千万以内的质数:"+sum);
	    }
	    public static boolean isPrime(int n) {
	    	
			if(n<2)  return false;//1既不是质数也不是偶数
			if(n == 2) return true;//2是质数
			if(n%2 == 0) return false;//排除偶数
			
			//去掉偶数的判断
			//进一步减少判断的范围  sqrt(n)
	    	for(int i=3; i<=Math.sqrt(n); i+=2) {
	    		if(n%i == 0) return false;
	    	}
	    	return true;
	    }
    
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值