Java基础必备(六)——数组(一)

本文探讨了Java中的数组,包括基本数据类型和引用类型的数组。讲解了如何使用System.arraycopy和Arrays.copyOf进行数组的复制与扩容。还讨论了数组的排序方法,如选择排序、冒泡排序、插入排序,并提及了Java内置的排序机制。此外,文章还介绍了二维数组的概念,即由多个一维数组组成,并提及了多维数组,特别是三维数组的结构和长度计算。
摘要由CSDN通过智能技术生成
	/**
	 * 选择排序:基本思想是选取比较第一次选取数组中的最小值然后跟比较的值交换位置即可
	 * @param a
	 */
	public void selectP(int[] a){
		for(int i=0;i<a.length-1;i++){
			for(int j=i+1;j<a.length;j++){
				if(a[i]>a[j]){
					int t = a[i];
					a[i] = a[j];
					a[j] = t;
				}
			}
		}
		System.out.println("选择排序:"+Arrays.toString(a));
	}
	/**
	 * 冒泡排序:基本思想是循环a.length-1次比较相邻的两个数大小,然后从小到大交换位置,
	 * @param b
	 */
	public void maoPao(int[] a){
		for(int i =0;i<a.length;i++){
			for(int j = i;j<a.length;j++){
				if(a[i]>a[j]){
					int t = a[i];
					a[i] = a[j];
					a[j] = t;
				}
			}
		}
		System.out.println("冒泡排序:"+Arrays.toString(a));
	}
	/**
	 * 插入排序:是一个对少量元素进行排序的有效算法。插入排序的工作原理与打牌时整理手中的牌的做法类似,开始摸牌时,我们的左手是空的,接着一次从桌上摸起一张牌,并将它插入到左手的正确位置。为了找到这张牌的正确位置,要将它与手中已有的牌从右到左进行比较,无论什么时候手中的牌都是排序好的。
	 * @param a
	 */
	public void Insert(int[] a){
		//假设{1,5,4,3,6,2}
		for(int i=1;i<a.length;i++){
			//那么我从第二个位置遍历,
			int key = a[i];//key值为5
			int j = i - 1; //然后去到它前面的一个位置
			while(j>0&&key<a[j]){
				a[j+1] = a[j];//把a[j]的值后移
				j--;
			}
			a[j+1] = key; //将当前值插入
		}
		System.out.println("插入排序:"+Arrays.toString(a));
	}
	

 a. 数组的声明
   int[] a = {...}
   int[] a = new int[10];大小固定
   new int[]{...}
   int[] a;
  数组名是数组的地址
  b.数组内存分配,弄清楚什么是引用
  c.案例
    写一个程序倒置一个数组
     i.直接在主函数中操作
       第一个和最后一个交换
       第二个和倒数第二个交换
     ii.写成函数来操作
        对任意的一个数组做倒置
    任意的一个数组应该找一个形式参数来代替
    形式参数是数组该怎么写,
    调用的时候怎么传递数组
    要不要有返回值呢?数组作为返回值应该如何写

数据类型 :  基本数据类型  引用类型

数组的复制拷贝扩容

System.arraycopy
Arrays.copyof

数组的排序
1.选择排序 2.冒泡排序 3.插入排序
4.java提供的排序
测试时间System.currentTimeMillis()

二维数组
  二维数组由多个一维数组组成
  二维数组的长度是其含有一维数组的元素的个数。

多维数组
  三维数组是由多个二维数组组成的
  三维数组的长度是其中二维数组的个数

函数的递归调用
求一个数字的阶乘
f(n)  =  f(n-1)*n(到文件操作有具体的使用)


了解String(字符串)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值