文档章节

java基础--数组--练习集锦

o
 osc_z1hvg4cu
发布于 2018/04/24 20:32
字数 1100
阅读 3
收藏 0

##数组反转

package zsc.czy.array;

public class A {
	public static void main(String[] args) {
  //最笨的方法
		int a[] = new int[5];
		for(int i = 0;i<a.length;i++){
			a[i] = (int) (Math.random() * 100);
			System.out.println(a[i]);
		}
		System.out.println();
		int b[] = new int[5];
		for (int i = 0; i < b.length; i++) {
			b[i]= a[a.length-i-1];
			System.out.println(b[i]);
		}
	}
}

package zsc.czy.array;

public class B {
        //首尾交换
	public static void main(String[] args) {
		int a[] = new int[5];
		for(int i = 0;i<a.length;i++){
			a[i] = (int) (Math.random() * 100);
			System.out.println(a[i]);
		}
		System.out.println();
		int temp =0;
		for (int i = 0; i < a.length/2; i++) {
			 temp = a[i];
			 a[i]= a[a.length-1-i];
			 a[a.length-1-i] = temp;
		}
		for(int i :a){
			System.out.println(i);
		}
	}

}

##选择排序 一开始我的错误写法

package zsc.czy.arraySort;

public class QuickSort {
/**
 *我第一次写,是这样的,是错误的,但还不知道错在哪里
 * 
 * @param args
 */
	public static void main(String[] args) {
		int a[] = new int[5];
		for (int i = 0; i < a.length; i++) {
			a[i] = (int) (Math.random() * 100);
			System.out.println(a[i]);
		}
		System.out.println();
		int temp=0;
		for (int i = 0; i < a.length-1; i++) {
			for(int j = i;j<a.length-1;j++){
				if(a[j]>a[j+1]){
					temp = a[j];
					a[j]=a[j+1];
					a[j+1]=temp;
				}
			}
		}
		for(int i:a){
			System.out.println(i);
		}
	}

}

###正确做法

package zsc.czy.arraySort;

public class QuickSort {
/**
 * 选择法排序的思路: 
把第一位和其他所有的进行比较,只要比第一位小的,就换到第一个位置来 
比较完后,第一位就是最小的 
然后再从第二位和剩余的其他所有进行比较,只要比第二位小,就换到第二个位置来 
比较完后,第二位就是第二小的 
以此类推
 * 
 * @param args
 */
	public static void main(String[] args) {
		int a[] = new int[5];
		for (int i = 0; i < a.length; i++) {
			a[i] = (int) (Math.random() * 100);
			System.out.println(a[i]);
		}
		System.out.println();
		int temp=0;
		for (int i = 0; i < a.length-1; i++) {
			for(int j = i+1;j<a.length;j++){
				if(a[j]<a[i]){
					temp = a[i];
					a[i]=a[j];
					a[j]=temp;
				}
			}
		}
		for(int i:a){
			System.out.println(i);
		}
	}

}

##冒泡排序

package zsc.czy.arraySort;

public class BubbleSort {
/*
 * 冒泡法排序的思路: 
 * 第一步:从第一位开始,把相邻两位进行比较 
 * 如果发现前面的比后面的大,就把大的数据交换在后面,循环比较完毕后,最后一位就是最大的
 * 第二步: 再来一次,只不过不用比较最后一位 
 * 以此类推
 */
	public static void main(String[] args) {
		int a[] = new int[5];
		for (int i = 0; i < a.length; i++) {
			a[i] = (int) (Math.random() * 100);
			System.out.println(a[i]);
		}
		System.out.println();
		for(int i=0;i<a.length-1;i++){
			for(int j=0;j<a.length-i-1;j++){
				if(a[j]>a[j+1]){
					int temp = a[j];
					a[j]=a[j+1];
					a[j+1]=temp;
				}
			}
		}
		for(int i :a){
			System.out.println(i);
		}
	}

}

##合并数组 ###题目 首先准备两个数组,他俩的长度是5-10之间的随机数,并使用随机数初始化这两个数组 然后准备第三个数组,第三个数组的长度是前两个的和 通过System.arraycopy 把前两个数组合并到第三个数组中

package zsc.czy.HebingArray;

public class HeBing {
	public static void main(String[] args) {
		int a[] = new int[5];
		int b[] = new int[5];
		for (int i = 0; i < a.length; i++) {
			a[i] = (int) (Math.random() * 100);
			b[i] = (int) (Math.random() * 100);

			System.out.println(a[i]);
			
		}
		System.out.println();
		for(int bb :b){
			System.out.println(bb);
		}
		System.out.println();
		int c[] = new int[a.length+b.length];
		System.arraycopy(a, 0, c, 0, a.length);
		System.arraycopy(b, 0, c, a.length, b.length);  ///从下表c[5]开始
		for(int cc :c){
			System.out.println(cc);
		}
	}
}

##二维数组 定义一个5X5的二维数组。 然后使用随机数填充该二维数组。 找出这个二维数组里,最大的那个值,并打印出其二维坐标

package zsc.czy.erWeiArray;

public class A {

	public static void main(String[] args) {
		int a[][] = new int[5][5];
		
		for(int i=0;i<a.length;i++){
			for(int j=0;j<a[i].length;j++){
				a[i][j]= (int)(Math.random()*100);
			}
		}
		
		  // 打印这个数组的内容:
        for (int[] row : a) {
            for (int each : row) {
                System.out.print(each + "\t");
            }
            System.out.println();
        }
        
		int max=a[0][0];
		int temp;
		for(int i=0;i<a.length;i++){
			for(int j=0;j<5;j++){
				if(a[i][j]>max){
					max = a[i][j];
				}
			}
			
		}
		System.out.println(max);
	}

}

##二位数组排序 首先定义一个5X8的二维数组,然后使用随机数填充满。 借助Arrays的方法对二维数组进行排序。

参考思路: 先把二维数组使用System.arraycopy进行数组复制到一个一维数组 然后使用sort进行排序 最后再复制回到二维数组。

package zsc.czy.ArrayUtil;

import java.util.Arrays;

public class ErWeiArraySort {

	public static void main(String[] args) {
		int a[][] = new int[5][8];
		for (int i = 0; i < a.length; i++) {
			for (int j = 0; j < a[i].length; j++) {
				a[i][j] = (int) (Math.random() * 100);
			}
		}
		// System.out.println(Arrays.toString(a));
		for (int aa[] : a) {
			for (int aaa : aa) {
				System.out.print(aaa + "\t");
			}
			System.out.println();
		}

		int newArray[] = new int[a.length * a[0].length];
//		for (int row[] : a) {
//			System.arraycopy(row, 0, newArray, 0, row.length);
//			System.out.println(Arrays.toString(newArray));
//		}
		for(int i=0;i<a.length;i++){
			//包里不包外
		System.arraycopy(a[i], 0, newArray, a[i].length*i, a[i].length);
		}
		System.out.println(Arrays.toString(newArray));
		Arrays.sort(newArray);
		System.out.println();
		System.out.println(Arrays.toString(newArray));
	}

}

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

pycurl libcurl link-time ssl backend (nss)

pip uninstall pycurlecho 'pycurl==7.19.5.1 --global-option="--with-nss"' > requires.pypip install -r requires.py...

小红手
10分钟前
11
0
计算机网络性能衡量

1、速率 单位时间(s)内传输信息(bit)量 单位:KB/s, MB/s, Gb/s K = 10^3 ,M = 10^6, G=10^9 一般表示的是理想的传输速率 2、带宽 计算机网络中的带宽和通信等领域的带宽概念不一样,计算机网...

osc_np3y0rbq
11分钟前
3
0
互联网掀起农家乐,巨头上演AI掘金战

配图来自Canva **前有网易、阿里AI养猪,后有腾讯AI养鹅,互联网大佬们纷纷玩起了“农家乐”,互联网的生意在尖端技术的引领之下频频跨界,巨头之间的较量也从线上延伸至线下。**自古“民以食...

osc_5cok9i01
12分钟前
5
0
原来!我在4年前就开始体验雾游戏了!

前有云游戏后有雾游戏,游戏的方式看来起来越来越多种多样。那么“震撼业界”的雾游戏到底是什么来头?它依靠什么改变游戏界?它的原理又是什么? 本月月初,著名的日本游戏杂志《Fami通》表...

osc_j34n26zn
13分钟前
5
0
活动预告|田溯宁与你相约GSMA Thrive·万物生晖,分享5G风口下的创新与投资洞察

在万物互联的时代背景下,5G+AI+IoT的技术变革与融合,正在引发一场深刻的全产业创新与变革。5G技术创新、行业应用及投资机遇已成为科技行业所瞩目的焦点。 6月30日,宽带资本董事长田溯宁将...

osc_0qnrwmy3
15分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部